【问题标题】:How to get the working directory?如何获取工作目录?
【发布时间】:2013-05-29 12:34:16
【问题描述】:

我正在使用

Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); 

获取我正在工作的当前目录。

我得到的是:

"R:\AquaSafeWDS\FrontEnds\WPF\Clients\AquaSafe.Clients.LagrangeanSimulator\bin\Debug"

但我真正想要的是:

“R:\AquaSafeWDS\FrontEnds\WPF\Clients\AquaSafe.Clients.LagrangeanSimulator”

有什么想法吗? 瑞马丁斯

【问题讨论】:

  • 你想要的是它看起来的项目目录......但这对你发布代码有什么帮助?目标是什么?
  • @rui - 请解释一下你想做什么。如果您想传递当前的源代码路径,请告诉我们您的意图。

标签: c# .net path directory


【解决方案1】:

【讨论】:

  • 那么这是当前的工作目录。毕竟这是你的 EXE 运行的地方。 bin\Debug 子文件夹是 VS 布局项目的方式。如果您需要让 EXE 在不同的工作目录中运行,您可以指示 VS 这样做。见:stackoverflow.com/questions/1102976/…
  • 不是一个很好的解决方案 - 工作目录可以随着您使用应用程序而改变,例如,打开文件对话框等。
  • 那么问题是如何获取当前工作目录。如果不知道 OP 打算如何使用当前工作目录,就很难判断这是否是解决 OP 问题的好方法。
【解决方案2】:

如果您想访问项目目录(您的 csproj 文件所在的位置)中的文件,当您分发应用程序并将其安装到另一台机器上时,该目录将位于 exe 目录中,那么最好的解决方案是将文件添加到您的项目,并在“属性”窗口中将它们设置为复制到输出目录。当您构建项目时,这些文件将自动复制到例如 bin\Debug。

现在,当您使用Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); 时,它会为您提供正确的文件目录。

【讨论】:

    【解决方案3】:

    String DirectoryName = System.IO.Directory.GetCurrentDirectory(); // 它将获取工作目录的名称

    【讨论】:

      【解决方案4】:

      这不是一个实际问题。

      但是在应用程序启动时,如果您希望某个目录成为您的默认工作目录,那么您可以在项目属性中选择自定义工作目录 -

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-05
        • 1970-01-01
        • 2012-12-21
        • 2013-05-19
        • 2022-11-03
        • 2012-07-22
        • 2013-06-26
        • 1970-01-01
        相关资源
        最近更新 更多