[英]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.