StreamReader在C#中的错误目录中查找文件

时间:2010-01-09 14:24:17

标签: c# streamreader openfiledialog

我有一个程序,我正在使用Windows窗体,在那种形式我使用openFileDialog,我在某个目录中打开一个文件。然后我在一个不同的函数中使用StreamReader,我在我的big / debug目录中有第二个文件,我希望streamReader打开。但由于某种原因,在我用openFileDialog打开第一个文件后,StreamReader会像往常一样在bin / debug中查找该目录中的第二个文件。

有谁知道他为什么这样做,我该如何解决?

提前致谢,

格雷格

3 个答案:

答案 0 :(得分:1)

在打开文件对话框中更改目录时,这也会导致应用程序的工作目录发生更改。因此,如果您尝试使用相对路径,它将查找错误的位置。

解决方案是RestoreDirectory

答案 1 :(得分:1)

OpenFileDialog有这种行为;它改变了应用程序的当前目录。为防止这种情况发生,您可以使用OpenFileDialog的{​​{3}}属性。

答案 2 :(得分:0)

如果未指定完整的文件路径但仅指定文件名,则表示该文件位于当前目录中。使用OpenFileDialog时,它会更改当前目录。

如果要在某处访问文件而不管当前目录的设置是什么,则必须为其指定完整路径。您可以使用Application.StartupPath获取程序所在文件夹的路径。