我有一个文件位于
....debug\net8.0\files\file.txt
下
要访问此文件,我有以下代码
var dirLoc = Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location);
var path = Path.Combine(dirLoc!, "\\files\\file.csv");
我遇到的问题是从未找到路径。我已将双斜杠 (\) 更改为单 \ 并尝试使用
.Replace(@"\\", @"\");
但即使如此,也找不到路径。
然后我复制了
path
,然后进入我的本地资源管理器窗口,该窗口说找不到它,但如果我将两个斜杠删除为1,那么它就起作用了。
我四处阅读并尝试了不同的代码来使其工作,但我想我可能错过了一些小东西?我尝试过转义代码,但要么我做错了,要么错过了一些东西。
任何人都可以指出我正确的方向吗?
使用
Path.Combine
时,不应添加前导或尾随反斜杠 (\\
)。前导反斜杠是一条丢弃所有路径信息并从根开始的指令,并产生 @"\files\file.csv"
。
这有效:
string path = Path.Combine (dirLoc, "files\\file.csv");
或者这个(为了更好的跨平台支持):
string path = Path.Combine (dirLoc, "files", "file.csv");