我目前正在为我想要打开的文件存储文件路径并为我的程序读入。但是,当我将该路径放入File.OpenText时,它将当前目录的路径添加到文件路径,然后我收到此错误:
DirectoryNotFoundException: Could not find a part of the path "/Users/km/Desktop/MP/file:/Users/km/Downloads/PT07E.obj".
我想要的路径是我传递的路径,即文件:/Users/km/Downloads/PT07E.obj"。
有没有办法阻止File.OpenText添加到我原来传入的这条路径?
答案 0 :(得分:1)
您必须添加正确的绝对路径 - 这意味着您忘记定义驱动器(通常是 C )。所以你的路径必须是(我使用反斜杠):
@"C:\Users\km\Downloads\PT07E.obj"
然而,最好不要使用绝对路径。我使用c#:
的specialFolder选项Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downlads", "PT07E.obj");
使用Path.Combine
总是一个好主意,它使用操作系统的标准路径分割器。
答案 1 :(得分:1)
如果您使用file:/{absolute path}
之类的路径(实际上是URI
)
你可以使用System.Uri
课程
与this answer中一样。
var uri = new Uri("file:/Users/km/Downloads/PT07E.obj");
using (var reader = File.OpenText(uri.AbsolutePath))
{
...
}