我有一个包含以下代码的 C# 应用程序:
string file = "relativePath.txt";
//Time elapses...
string contents = File.ReadAllText(file);
这在大多数情况下都很好用。该文件是相对于启动应用程序的目录读取的。但是,在测试中发现,如果放置约 5 小时,该应用程序将抛出 FileNotFoundException
提示“C:\Documents and Settings\Adminstrator\relativePath.txt”无法打开成立。如果读取文件的操作立即运行,则会从正确的位置读取文件,我们称之为“C:\foo\relativePath.txt”
什么给了?而且,最好的解决办法是什么?正在根据 Assembly.GetEntryAssembly().Location
解析文件?
最佳答案
OpenFileDialog 是一个可以改变路径的诡异地方。当用户在文件夹之间导航时,它会将您的应用程序目录更改为当前正在查看的目录。如果用户在不同的目录中关闭对话框,那么您将被困在该目录中。
它有一个名为 RestoreDirectory 的属性这会导致对话框重置路径。但我相信默认值是“false”。
关于c# - 什么会导致正在执行的应用程序的当前目录发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/158219/