簡體   English   中英

通過傳入絕對文件路徑打開文件

[英]Opening a file by passing in absolute file path

我目前正在存儲一個文件路徑,該文件路徑是我要打開並閱讀程序的文件。 但是,當我將該路徑放入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添加到我最初傳遞的此路徑中?

您必須添加正確的絕對路徑-這意味着您忘記定義驅動器(通常為C )。 因此,您的路徑必須是(我將使用反斜杠):

@"C:\Users\km\Downloads\PT07E.obj"

但是,最好不要為此使用絕對路徑。 我會使用c#的specialFolder選項:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downlads", "PT07E.obj");

使用Path.Combine總是一個好主意,它使用操作系統的標准路徑分配器。

如果您使用諸如file:/{absolute path} (實際上是URI )之類的file:/{absolute path} ,則可以使用System.Uri類。
就像這個答案

var uri = new Uri("file:/Users/km/Downloads/PT07E.obj");
using (var reader = File.OpenText(uri.AbsolutePath))
{
   ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM