【发布时间】:2019-03-25 18:25:59
【问题描述】:
我正在为家庭作业编写一个程序,该程序旨在从命令行获取两个程序参数。第一个是要在文本文件中搜索的单词,第二个是要搜索的文件的文件路径。程序查找单词,如果找到,则打印该单词在文件中的编号(即单词编号 10)。
问题是当我输入两个参数时:
homework "C:\\Users\\louiz\\source\\repos\\File and exception hw\\File and
exception hw\\bin\\Debug\\File_for_homework_11_17"
我收到找不到文件的错误消息。 Visual Studio 中的错误消息似乎表明由于某种原因文件路径末尾有句点。
这个句点不是我输入的文本的一部分(见下文)
下面是我的代码。在这一点上相当简单,我打算添加一个找不到文件的异常处理程序,并在找不到搜索的单词时打印一条消息。但我想确保我可以先读取文件。我知道通过命令行完成这些操作可能不是最简单的方法,但这是分配所需要的。我似乎无法让它工作。任何建议将不胜感激。
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();
}
}
【问题讨论】:
-
我很确定您在那里使用了错误的斜杠。该点也属于“异常消息打印输出”部分,而不是实际的字段路径。
-
反斜杠只能在代码中的字符串文字中转义(
\\),而不是在命令行中。试试homework c:\Users\louiz... -
您确定该文件没有任何扩展名,例如
.txt?如果是,您也需要提供(Explorer 可能不会显示扩展程序,但您仍需要提供)。 -
File_for_homework_11_17是您的 VS 解决方案的一部分吗?获取它的属性并告诉我们 Copy To Output 的值是什么。
标签: c# file-io command-line arguments command-line-arguments