0
using (StreamReader sr = new StreamReader("gold.txt"))
        {

            text.Text = sr.ReadToEnd();
        }

为什么我会收到此错误?我只是创建了文本文件并尝试制作一个新的 StreamReader 来读取 gold.txt。

4

3 回答 3

1

如果您在 Visual Studio 的项目中有“gold.txt”,请确保属性“复制到输出目录”设置为“如果较新则复制”或“始终复制”。

希望这可以帮助。我在这一点上失败了很多很多次:P

此外,在阅读之前检查是否 File.Exists("gold.txt") 总是一个好主意。我也倾向于使用 File.OpenText 或类似的,因为我觉得它让你更明显地看到你正在使用一个文件。

记得关闭();

于 2013-02-18T09:02:40.960 回答
1

当您提供StreamReader非限定路径作为参数时,它将在应用程序的工作目录中查找文件。如果文件不在那里,您可能希望给它一个完全限定的路径,例如:

StreamReader sr = new StreamReader(@"C:\Path\To\gold.txt")
于 2013-02-17T17:36:20.933 回答
0

您收到此错误的原因是系统无法根据您传递给 StreamReader 的路径找到文件。这可能是因为该文件不在应用程序默认查找的目录中。

正如已经建议使用完整路径或将文件放在正确的位置应该在短期内解决问题。但是,在某些时候,您可能希望要求用户像这样定位文件:

        OpenFileDialog openFileDialog = new OpenFileDialog();

        if (openFileDialog.ShowDialog() == DialogResult.OK)
        {
            string filePath = openFileDialog.FileName;

            using (StreamReader sr = new StreamReader(filePath))
            {
                text.Text = sr.ReadToEnd();
            }
        }       
于 2013-02-18T02:09:06.273 回答