OpenFileDialog和Environment.CurrentDirectory

时间:2010-01-12 13:13:24

标签: c#

使用OpenFileDialog选择文件后,Environment.CurrentDirectory会更改文件夹。这是正常的吗?

根据我的理解,Environment.CurrentDirectory应该始终是应用程序文件夹。

3 个答案:

答案 0 :(得分:8)

看看

Difference of AppDomain.CurrentDomain.BaseDirectory and Environment.CurrentDirectory

  

以下有何不同?

     
      
  1. AppDomain.CurrentDomain.BaseDirectory
  2.   
  3. Environment.CurrentDirectory
  4.   
  5. AppDomainSetup.ApplicationBase
  6.         

    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属性。