从当前项目中获取文件路径
get file path from current project
在我的 Visual Studio 控制台应用程序中,我的项目位于以下位置:
c:\MyProject\FilesToUpload\test.txt
我正在尝试使用以下代码访问此文件:
string path = Path.Combine(Environment.CurrentDirectory, @"FilesToUpload\", "test.txt");
但是这条路 returns: c:\MyProject\bin\debug\net461\FilesToUpload\test.txt
我想得到的路径是:c:\MyProject\FilesToUpload\test.txt
"Environment.CurrentDirectory" return 正确路径。您的应用程序是一个 "exe" 文件,但不是源文件。它从编译输出目录运行。您不需要从 "c:\MyProject\FilesToUpload\test.txt" 获取文件,但您需要将 "test.txt" 的 "Copy to Output Directory" 属性 更改为 "Copy Always"。
Environment.CurrentDirectory
将 return 您的程序当前 运行 所在的路径。您需要做的是决定以下其中一项:
- 该路径与目录之间的关系 "FilesToUpload"。
- 硬编码路径,例如
c:\MyProject\FilesToUpload\
- 一个可配置的路径,然后您可以在您的应用程序中指定和读取该路径。 就我个人而言,我更喜欢此选项,因为它不会取决于您 运行 应用程序的来源。
在第一种情况下,你可以使用这样的东西:
var relation = @"..\..\..\FilesToUpload\";
var currPath = Path.Combine(Environment.CurrentDirectory, relation, "test.txt");
更新/澄清:
对于第一个选项,在你的情况下(你的例子),使用相对路径应该有效地改变你的 returned 路径:
c:\MyProject\bin\debug\net461\FilesToUpload\test.txt
收件人:
c:\MyProject\bin\debug\net461\..\..\..\FilesToUpload\test.txt
试一试,看看效果如何 - 如果路径不完全正确,您应该能够找到调整方法。
在我的 Visual Studio 控制台应用程序中,我的项目位于以下位置:
c:\MyProject\FilesToUpload\test.txt
我正在尝试使用以下代码访问此文件:
string path = Path.Combine(Environment.CurrentDirectory, @"FilesToUpload\", "test.txt");
但是这条路 returns: c:\MyProject\bin\debug\net461\FilesToUpload\test.txt
我想得到的路径是:c:\MyProject\FilesToUpload\test.txt
"Environment.CurrentDirectory" return 正确路径。您的应用程序是一个 "exe" 文件,但不是源文件。它从编译输出目录运行。您不需要从 "c:\MyProject\FilesToUpload\test.txt" 获取文件,但您需要将 "test.txt" 的 "Copy to Output Directory" 属性 更改为 "Copy Always"。
Environment.CurrentDirectory
将 return 您的程序当前 运行 所在的路径。您需要做的是决定以下其中一项:
- 该路径与目录之间的关系 "FilesToUpload"。
- 硬编码路径,例如
c:\MyProject\FilesToUpload\
- 一个可配置的路径,然后您可以在您的应用程序中指定和读取该路径。 就我个人而言,我更喜欢此选项,因为它不会取决于您 运行 应用程序的来源。
在第一种情况下,你可以使用这样的东西:
var relation = @"..\..\..\FilesToUpload\";
var currPath = Path.Combine(Environment.CurrentDirectory, relation, "test.txt");
更新/澄清:
对于第一个选项,在你的情况下(你的例子),使用相对路径应该有效地改变你的 returned 路径:
c:\MyProject\bin\debug\net461\FilesToUpload\test.txt
收件人:
c:\MyProject\bin\debug\net461\..\..\..\FilesToUpload\test.txt
试一试,看看效果如何 - 如果路径不完全正确,您应该能够找到调整方法。