【问题标题】:OpenFileDialog and Environment.CurrentDirectoryOpenFileDialog 和 Environment.CurrentDirectory
【发布时间】:2010-01-12 13:13:24
【问题描述】:

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

据我了解 Environment.CurrentDirectory 应该始终是应用程序文件夹。

【问题讨论】:

标签: c#


【解决方案1】:

看看

Difference of AppDomain.CurrentDomain.BaseDirectory and Environment.CurrentDirectory

以下有什么区别?

  1. AppDomain.CurrentDomain.BaseDirectory
  2. Environment.CurrentDirectory
  3. AppDomainSetup.ApplicationBase

1 和 3 基本相同。这 区别在于 AppDomainSetup.ApplicationBase 是 可写,但 AppDomain.BaseDirectory 是只读的,因为你不能改变它 应用程序域创建后。

2 完全不同。 它用于解析相对路径, 除其他事项外。 您可以更改 CurrentDirectory 随时在您的 代码,它也可以由 FileDialogs 之类的东西。

【讨论】:

    【解决方案2】:

    因为对话框会在搜索文件或文件夹时更改 Environment.CurrentDirectory .. 或选择它们进行上传..等..

    注意:如对您问题的评论中所示,请按照 duplicate question..的链接使用

    FileDialog.RestoreDirectory property.
    

    【讨论】:

      【解决方案3】:

      是的,这很正常,并且当前目录并不总是应用程序文件夹。运行 cmd 并使用 cd 命令更改目录。您刚刚更改了 Environment.CurrentDirectory 中显示的相同值!当用户通过命令行或类似机制指定文件名时,您应该只使用当前目录值。如果您想要应用程序文件夹,请使用 Application.StartupPath 属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 2014-03-09
        相关资源
        最近更新 更多