2012-09-24 20 views
76

Ich habe einen absoluten lokalen Pfad zu einem Verzeichnis zeigt: "file:\\C:\\Users\\john\\documents\\visual studio 2010\\Projects\\proj"Ausnahme: „URI-Formate werden nicht unterstützt“

Aber wenn ich versuche, es zu werfen, in DirectoryInfo ‚s Ctor ich die bekommen‚URI-Formate werden nicht unterstützt‘ Ausnahme.

Ich googelte und schaute auf SO, aber ich sehe nur Lösungen mit Remote-Pfaden, keine lokalen. Ich würde ein Umwandlungsverfahren von einer Art erwarten ...

Antwort

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

Nice! Ich hatte genau dieses Problem und googelte wie verrückt, das hat super funktioniert. –

+0

Excellent..saved viel Zeit für mich :) –

+0

Während es eine Lösung ist, die offc funktioniert, gibt es nur einen Fall, der es scheitert. Wenn der Ort ein # enthält, wird der lokale Pfad nur bis zu dieser Position gehen. Z.B. Wenn Ihr Pfad file: /// C: /foo/bar#/test.jpg lautet, erhalten Sie C:/foo/bar anstelle dessen, was Sie eigentlich wollen. – DokutoMekki

0

Probieren Sie diese

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