通过传入绝对文件路径打开文件

时间:2017-04-16 07:10:21

标签: c#

我目前正在为我想要打开的文件存储文件路径并为我的程序读入。但是,当我将该路径放入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添加到我原来传入的这条路径?

2 个答案:

答案 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))
{
   ...
}