我常做的事情是按当前日期/时间命名文件。例如,我将命名为 12-31-2016-08-46-01.jpg
这太棒了。它运作良好。但是每次都输入它很烦人,所以我认为只编写一个将输出作为字符串返回的小程序很有用。这很容易。
public class Program {
public static string Main() {
var strFilename = new DateTimeFilename();
return strFilename.Current();
}
public class DateTimeFilename {
public string Current () {
return // ... logic ... //
}
}
然后我将此程序添加为 Windows 注册表中的上下文菜单选项。
除非那行不通。显然,我无法从实际程序返回 string
。
那么有没有办法将 string
从程序中取出并放入当时我的光标试图输入的任何内容?
最佳答案
我建议您在 Windows 文件资源管理器中工作并添加一个 Send To
选项来执行此操作并将当前选择的文件名传递到剪贴板。
以下采用选定的文件名并在名称之后但在扩展名之前添加自定义日期,例如 TheFile.20211123.txt
:
static void Main(string[] args)
{
var name = $"{Path.GetFileNameWithoutExtension(args[0])}.{DateTime.Now.ToString("yyyyMMdd")}{Path.GetExtension(args[0])}";
// MessageBox.Show(name);
Clipboard.SetText(name);
}
- 构建程序并为构建的 exe 创建一个文件资源管理器快捷方式。然后将快捷方式放置到此文件夹:
C:\Users\{用户名}\AppData\Roaming\Microsoft\Windows\SendTo
然后在文件资源管理器中右键单击,选择
发送到
并选择您为其指定的快捷方式名称。然后将新名称粘贴到您需要的位置,因为它位于您的剪贴板中。
关于c# - 从上下文菜单 (C#) 向 Windows 返回一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409288/