【问题标题】:Path.Combine not working / cannot get working directoryPath.Combine 不起作用/无法获取工作目录
【发布时间】:2019-02-04 13:04:25
【问题描述】:

我已在我的解决方案中将我的工作目录设置为一个名为“working”的文件夹(通过右键单击解决方案->调试->设置工作目录)。我在该文件夹中创建了一个名为 appSettings.xml 的文件。 我想获取该xml文件的路径并将其放入变量中,我尝试了以下代码但它不起作用,我做错了什么?:

编辑:问题似乎是我的工作文件夹是 ...bin\debug 即使我已将其设置为属性中的正确路径。如何将其设置到不同的目录?

string settingsPath = Path.Combine(Directory.GetCurrentDirectory(), "appSettings.xml");

【问题讨论】:

  • 您是否根据您的文件位置仔细检查了 PathCombine 的输出?
  • 它不会告诉我输出是什么。我得到“无法获取变量的值,因为它在此指令指针处不可用,可能是因为它已被优化掉”
  • 它是一个控制台应用程序吗?另外:您是否希望将appSettings.xml 放在可执行文件的位置,而不是实际工作区的位置?因为那样你就不会这样做了。 (System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.Substring("file:///".Length) 给你可执行路径)

标签: c# path working-directory


【解决方案1】:

检查目录,因为较早的答案应该告诉目录是否存在。 不知道您是否在问题中复制并粘贴了文件名。在这种情况下,您将文件名拼写错误,因为它在您提到文件名的地方拼写为 3 x T,而在代码中则拼写为 2 x T。 可能很容易错过,认​​为每个人都做过一次或“两次”。

尝试将路径作为字符串来检查代码是否可以找到您的文件。

if (File.Exists(Path.Combine(filedirectoryPathAsString, fileName))

【讨论】:

  • 谢谢,问题似乎是我的工作目录设置为 ...bin\debug 而不是我的解决方案中的“工作”文件夹。我不确定如何将我的工作目录设置为正确的目录。我在“工作目录”下的属性窗口中选择了它,但这似乎不起作用
【解决方案2】:

首先检查Directory.GetCurrentDirectory()是否存在

if(Directory.Exists(Directory.GetCurrentDirectory())
{
  //This will write CurrentDirectory path on console
   Console.WriteLine(Directory.GetCurrentDirectory()); 
  //If exist then check for Path.Combine()
}

注意:当前目录与原始目录不同, 进程从哪个开始

大多数时候它是你的 bin 文件夹的目录

您可以通过将参数传递给您的函数来设置 CurrentDirectory

Directory.SetCurrentDirectory(@"c:\program files\");

【讨论】:

  • 我右键单击了解决方案->调试->并更改了那里的工作目录,以便它指向我的解决方案中的“工作”文件夹。
  • 您是否将要复制到输出目录的 xml 文件标记为 始终复制Xml文件->右键->属性->复制到输出目录设置为始终复制
  • 输入上面的代码告诉我该目录存在,但我不确定如何找到确切的路径。当然应该是我在属性/工作目录中选择的目录?
  • 谢谢,我现在可以看到问题了。问题是 GetCurrentDirectory 仍然指向 bin\release 文件夹而不是“工作”文件夹,即使我已在属性中选择它作为工作目录。如何确保“工作”是工作目录?
【解决方案3】:

此答案适用于已编辑的问题。 您可以通过Right click on project -> Properties -> Build -> Output -> Output path更改输出目录

还可以查看此解决方案以查看差异:https://stackoverflow.com/a/27322567/4731319

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2012-12-21
    • 1970-01-01
    • 2012-07-22
    • 2013-03-08
    • 2021-02-10
    • 2023-03-17
    相关资源
    最近更新 更多