首页 > 解决方案 > 从当前项目获取文件路径

问题描述

在我的 Visual Studio 控制台应用程序中,我的项目位于以下位置:

c:\MyProject\FilesToUpload\test.txt

我正在尝试使用以下代码访问此文件:

string path = Path.Combine(Environment.CurrentDirectory, @"FilesToUpload\", "test.txt");

但是这条路径返回:c:\MyProject\bin\debug\net461\FilesToUpload\test.txt

我想得到的路径是: c:\MyProject\FilesToUpload\test.txt

标签: c#visual-studiosystem.io.file

解决方案


Environment.CurrentDirectory将返回您的程序当前运行的路径。您需要做的是决定以下其中一项:

  • 该路径与目录“FilesToUpload”之间的关系。
  • 硬编码路径,例如c:\MyProject\FilesToUpload\
  • 一个可配置的路径,然后您可以在应用程序中指定和读取该路径。就个人而言,我更喜欢这个选项,因为它不会依赖于您从哪里运行应用程序。

在第一种情况下,您可以使用如下内容:

var relation = @"..\..\..\FilesToUpload\";
var currPath = Path.Combine(Environment.CurrentDirectory, relation, "test.txt");

更新/澄清:

对于第一个选项,在您的情况下(您的示例),使用相对路径应该有效地更改您返回的路径:

c:\MyProject\bin\debug\net461\FilesToUpload\test.txt

到:

c:\MyProject\bin\debug\net461\..\..\..\FilesToUpload\test.txt

试试这个,看看它是否有效 - 如果路径不完全正确,您应该能够弄清楚如何调整它。


推荐阅读