使用OpenFileDialog
选择文件后,Environment.CurrentDirectory
会更改文件夹。这是正常的吗?
根据我的理解,Environment.CurrentDirectory应该始终是应用程序文件夹。
答案 0 :(得分:8)
看看
Difference of AppDomain.CurrentDomain.BaseDirectory and Environment.CurrentDirectory
以下有何不同?
- AppDomain.CurrentDomain.BaseDirectory
- Environment.CurrentDirectory
- AppDomainSetup.ApplicationBase
醇>1和3基本相同。该 区别在于 AppDomainSetup.ApplicationBase是 可写,但是AppDomain.BaseDirectory 是只读的,因为您无法更改它 在创建appdomain之后。
2是完全不同的东西。 它用于解析相对路径, 除其他事项外。 你可以改变 CurrentDirectory随时都在你的 代码,它也可以改变 比如FileDialogs。
答案 1 :(得分:3)
因为对话框在搜索文件或文件夹时更改了Environment.CurrentDirectory ..或者选择它们进行上传..等等..
注意:如您对问题的评论所示,请点击 duplicate question..使用
的链接FileDialog.RestoreDirectory property.
答案 2 :(得分:1)
是的,这是正常的,当前目录并不总是应用程序文件夹。运行cmd并使用cd命令更改目录。您刚刚更改了Environment.CurrentDirectory中显示的相同值!当用户通过命令行或类似机制指定文件名时,您应该只使用当前目录值。如果您希望应用程序文件夹使用Application.StartupPath属性。