我正在尝试使用C#在Visual Studio中创建一个控制台应用程序,以便能够将.txt文件拖放到.exe文件中,并让它在该文件中查找和替换。最后我还想要它然后保存 - 与原始文件名末尾的_unwrapped一样。我是C#的新手,这是我到目前为止所做的。它适用于我放在调试文件夹中的测试文件。如何使用拖动文件进行此操作?我尝试了一些我在谷歌上找到的东西,但是它们没有用,我不理解它们。谢谢!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
string text = File.ReadAllText("test.txt");
text = text.Replace("~", "~\r\n");
File.WriteAllText("test.txt", text);
}
}
}
答案 0 :(得分:9)
如果在Windows中的.exe上拖动文件,则会以文件的路径作为参数执行.exe。您只需从args
参数中提取参数:
static void Main(string[] args)
{
if (args.Length == 0)
return; // return if no file was dragged onto exe
string text = File.ReadAllText(args[0]);
text = text.Replace("~", "~\r\n");
string path = Path.GetDirectoryName(args[0])
+ Path.DirectorySeparatorChar
+ Path.GetFileNameWithoutExtension(args[0])
+ "_unwrapped" + Path.GetExtension(args[0]);
File.WriteAllText(path, text);
}