通过命令行输入时,C#period('。')被添加到文件路径中

时间:2018-10-21 14:41:28

标签: c# file-io command-line arguments command-line-arguments

我正在编写一个用于作业分配的程序,该程序旨在从命令行获取两个程序参数。第一个是在文本文件中搜索的单词,第二个是要搜索的文件的文件路径。程序会查找单词,如果找到该单词,则会打印该单词在文件中的编号(即单词编号10)。

问题是当我输入两个参数时:

homework "C:\\Users\\louiz\\source\\repos\\File and exception hw\\File and 
exception hw\\bin\\Debug\\File_for_homework_11_17"

我收到一个找不到文件的错误。 Visual Studio中的错误消息似乎表明由于某种原因文件路径的末尾有一个句点。

enter image description here

这段时间不属于我输入的文本的一部分(见下文)

enter image description here

下面是我的代码。在这一点上,我打算添加一个未找到的文件异常处理程序,并在未找到搜索到的单词时显示一条消息,这很简单。但我想确保可以先读取文件。我知道通过命令行完成这些操作可能不是最简单的方法,但这是分配所需要的。我似乎无法正常工作。任何建议将不胜感激。

class Program
{
    static void Main(string[] args)
    {
        string line;
        string lookFor = args[0];
        int count = 0;

        StreamReader f = new StreamReader(args[1]);

        while((line = f.ReadLine()) != null)
        {
            String[] strings = line.Split(new char[]{' '});
            if (strings[count] == lookFor)
            {
                Console.WriteLine("{0} was word number {1} in the file.", lookFor, count);
            }

            count++;
        }
        Console.WriteLine("{0}", args[1]);
        Console.ReadLine();
    }
}

1 个答案:

答案 0 :(得分:0)

句点属于异常消息,您的字符串在此消息中以单引号引起来。

所以问题确实是找不到该文件。检查它是否确实存在。也许文件扩展名丢失了?有拼写错误吗?

此外,您不需要双斜杠,但它们不会造成伤害。