假我要處理的文件路徑類似File.Exists返回URL類型文件路徑
file:///My%20HD/files/06.%20test%20Lastname%20-%20test.mp3
該文件確實存在,我可以訪問它。
但System.IO.File.Exist()返回false。
我猜問題是文件路徑格式。我該如何處理它?
假我要處理的文件路徑類似File.Exists返回URL類型文件路徑
file:///My%20HD/files/06.%20test%20Lastname%20-%20test.mp3
該文件確實存在,我可以訪問它。
但System.IO.File.Exist()返回false。
我猜問題是文件路徑格式。我該如何處理它?
使用Uri.LocalPath將文件URL轉換爲實際的文件路徑,例如:
Uri uriAddress2 = new Uri(@"file:///h:/test.html");
Console.WriteLine(uriAddress2.LocalPath);
Console.WriteLine(File.Exists(uriAddress2.LocalPath));
的文件URL是不是一個有效的文件路徑,本地或UNC。 File.Exists
只檢查文件路徑是否實際上對應於真實文件。
事實上,作爲Caramiriel的評論指出,已存在結束調用NormalizePath其中明確拒絕的URI,因爲很多的Win32 API無法處理它們
File.Exits的單聲道版本,就像.NET,checks爲特定路徑檢索文件屬性。 GetFileAttributes
是一個外部調用,可能最終調用等效的Win32 API函數,因此文件URL將不起作用
正如我在評論中提到的那樣,這是一個奇怪的問題。 。1.我在我的mac上使用文件的第三方應用程序中創建一個文件2.我從應用程序保存3.我嘗試解析單聲道應用程序中的文件現在我得到UNC但不能File.Exists()它在同一臺機器上? – dknaack
您是否進行Url解碼? – Youngjae
這不是一個uri,「我的%20HD」應該是一個盤符。 –
你爲什麼期望'File.Exists'與URL一起工作?你不應該問'如何將文件URL轉換爲文件路徑? –