当StreamReader尝试读取txt文件时,我得到FileNotFound异常

时间:2013-02-17 17:31:08

标签: c# .net winforms io streamreader

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

            text.Text = sr.ReadToEnd();
        }

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

3 个答案:

答案 0 :(得分:1)

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

StreamReader sr = new StreamReader(@"C:\Path\To\gold.txt")

答案 1 :(得分:1)

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

希望这会有所帮助。我在这一点上失败很多次:P

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

记得关闭();

答案 2 :(得分: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();
            }
        }       
相关问题