2012-09-24 60 views
76

我必須指向一個目錄的絕對本地路徑:"file:\\C:\\Users\\john\\documents\\visual studio 2010\\Projects\\proj"例外:「URI格式不支持」

但是,當我試圖把它扔進DirectoryInfo的構造函數我得到的‘URI格式不支持’例外。

我搜索了一下,看上去是這樣,但我只看到遠程路徑解決方案,而不是本地路徑。我期望某種形式的轉換方法...

回答

153
string uriPath = 
    "file:\\C:\\Users\\john\\documents\\visual studio 2010\\Projects\\proj"; 
string localPath = new Uri(uriPath).LocalPath; 
+3

不錯!我有這個完全相同的問題,並瘋狂谷歌搜索,這很好。 –

+0

Excellent..saved很多時間對我來說:) –

+0

雖然它的解決方案工作ofc,但只有一個案件,它失敗了。如果該位置包含一個#,那麼本地路徑將只會一直到該位置。例如。如果你的路徑是file:/// C:/foo/bar#/test.jpg那麼你會得到C:/ foo/bar而不是你真正想要的。 – DokutoMekki

0

嘗試這個

ImagePath = "http://localhost/profilepics/abc.png"; 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ImagePath); 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      Stream receiveStream = response.GetResponseStream();