c# - 从当前项目获取文件路径
问题描述
在我的 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
解决方案
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
试试这个,看看它是否有效 - 如果路径不完全正确,您应该能够弄清楚如何调整它。
推荐阅读
- android - 为什么我的适配器没有在我的片段中被调用?
- go-gorm - 我的 GORM 主 ID 设置为 18 位数字,我如何强制此数字从 1 开始
- java - 将 Java 按位“与”运算符转换为 Kotlin
- python - 从文本文件中打印给定字符串的所有字谜
- firebase - react-native-firebase Crashlytics 在 Android 上出现错误
- eclipse - 如何更改日食行号背景颜色?
- android-studio - 无法在 android studio 上运行我的新 Android APP
- java - 在一个数组中,我如何更新值,以便在选择一个项目时,库存下降?
- ios - 更改所有 UIViewControllers 背景
- shopify - 如何确定 Shopify 中 all_products 的所有用途?