如何使用控制台应用程序和streamreader的拖放功能

时间:2015-03-07 02:39:10

标签: c# console-application streamreader

    static void Main(string[] args)
    {
        string path = Console.ReadLine();
        using (StreamReader sr = new Streamreader(path);
        {
           \\ do something with the file
        }
    }

嗨,我正在尝试允许用户将txt文件拖放到控制台中,让它读取路径,然后解析文件中的信息。

但是我得到了:

mscorlib.dll中出现未处理的“System.ArgumentException”类型异常

其他信息:路径中的非法字符。

当我运行我的代码时。我想我可以通过在使用之前格式化文件路径来解决它,但这似乎不是“预期的解决方案”。我失踪了吗?

感谢。

1 个答案:

答案 0 :(得分:7)

将文件拖到控制台应用程序的.exe文件时,该文件的路径将自动成为控制台应用程序的第一个参数。因此,如果存在,您可以从该参数获取路径。您还应该仔细检查参数是否包含路径(有效文件名),以防控制台应用程序从其他参数的命令行启动。

static void Main(string[] args)
{
    if (args.Length > 0 && File.Exists(args[0]))
    {
        string path = args[0];
        using (StreamReader sr = new StreamReader(path))
        {
           // do something with the file
        }
    }
}