当Environment.CurrentDirectory发生变化时,是否有任何事件要通知?

时间:2017-11-17 10:29:57

标签: c# .net

在我的代码中,我尝试使用相对路径使用File.Open()读取文件。但有时候当前目录会被更改,目录未找到异常即将到来。

我想知道Environment.CurrentDirectory在哪里被改变了。我检查了Directory.SetCurrentDirectory方法但是调用了本机方法。

是否有任何事件会在Environment.CurrentDirectory发生变化时通知我?如何找出目录的确切位置?

我尝试在Environment.CurrentDirectoryDirectory.SetCurrentDirectory()的所有出现时都设置断点。

2 个答案:

答案 0 :(得分:0)

这是必要的更多细节,我从未在运行时看到过这个属性的变化。

  1. 如果从另一个快捷方式的“开始”菜单运行可执行文件,则当前目录将更改,请检查属性“开始”。

    1. 如果您要部署Click Once应用程序,则每个版本都安装在不同的文件夹中,您将找不到保存在同一可执行文件夹中的文件。

    2. 我发现一些引用OpenFileDialogs(和opendirectorydialog)改变了Environment.CurrentDirectory。

  2. 来源:custom Manager

答案 1 :(得分:0)

不,但您可以在File.Open()调用之前检查当前目录是否正确,或者存储您要使用的正确目录并使用File.Open()的绝对路径