将文件拖放到控制台应用程序

Drag and drop file onto console application

我正在尝试使用 C# 在 Visual Studio 中创建一个控制台应用程序,以便能够将 .txt 文件拖放到 .exe 文件上并让它在该文件中查找和替换。最后我还希望它在原始文件名的末尾保存为_unwrapped。我是 C# 的新手,这是我目前所拥有的。它适用于我放在调试文件夹中的测试文件。如何使用拖动的文件使其工作?我尝试了一些在 google 上找到的东西,但它们没有用,而且我不理解它们。谢谢!!

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);

        }
    }
}

当您将文件拖到 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);

 }