C# 当Environment.CurrentDirectory发生更改时,是否有任何事件要通知?

C# 当Environment.CurrentDirectory发生更改时,是否有任何事件要通知?,c#,.net,C#,.net,在我的代码中,我试图使用带有相对路径的file.Open()读取文件。但有时,当前目录会发生更改,并且会出现目录未找到异常 我正在试图找出环境的位置。CurrentDirectory正在更改。我检查了该方法,但它调用了本机方法 当Environment.CurrentDirectory发生更改时,是否有任何事件会通知我?我如何找出目录的确切更改位置 我已经尝试在所有出现的环境.CurrentDirectory和目录.SetCurrentDirectory()中放置断点。需要更多详细信息,我从未见

在我的代码中,我试图使用带有相对路径的
file.Open()
读取文件。但有时,当前目录会发生更改,并且会出现目录未找到异常

我正在试图找出
环境的位置。CurrentDirectory
正在更改。我检查了该方法,但它调用了本机方法

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


我已经尝试在所有出现的
环境.CurrentDirectory
目录.SetCurrentDirectory()

中放置断点。需要更多详细信息,我从未见过此属性在运行时发生更改

  • 如果您正在从“开始”菜单或其他快捷方式运行可执行文件,则当前目录将更改,请选中属性“开始”

  • 如果您正在部署一次单击应用程序,则每个版本都安装在不同的文件夹中,并且找不到保存在同一可执行文件夹中的文件

  • 我发现了一些OpenFileDialogs(和opendirectorydialog)更改Environment.CurrentDirectory的引用


  • 来源:

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

    需要更多的上下文。可能是您的代码,所以任何目录更改都是有意的。我一直在寻找改变它的电话。一些人可能不会考虑使用文件打开对话框来改变当前的文件夹。到目前为止,最好的办法就是永远不要使用它。你永远不需要它。感觉这篇文章回答了一些关于“当前目录更改”的其他解释。