2016-05-16 52 views
1

Ich weiß, das wird oft gefragt, aber ich konnte nicht genau finden, was ich brauche. in path.combine in C#

Ich möchte den Serverpfad und fügen Bildpfad zu diesem hinzu. Ich habe das

string mypath = Request.Url.GetLeftPart(UriPartial.Authority); 
string uploadPath = Path.Combine(mypath, "Upload/Images/"); 
Response.Write(uploadPath); 

Diese http://localhost\Upload/Images/ gedruckt, warum gibt es eine \ in der Mitte des Weges.

ich es fest von / zu mypath wie diese

string mypath = Request.Url.GetLeftPart(UriPartial.Authority) + "/"; 

Zugabe Ist dies der richtige Weg? Oder gibt es einen besseren Weg dies zu tun?

Antwort

2

Es ist, weil Path.Combine gemeint ist typisch Verzeichnispfad zu kombinieren, so etwas wie:

C:\MyDir\MyDir2\MyMyDir 

wo der Separator \ ist, nicht URL, wo der Separator /:

http://stackoverflow.com/questions/37249357/in-path-combine-in-c-sharp/37249373#37249373 

Wenn Sie möchten, Um den URL-Pfad zu kombinieren, können Sie stattdessen Uri verwenden:

Uri baseUri = new Uri(mypath); 
Uri myUri = new Uri(baseUri, "Upload/Images/"); 
0

Sie sollten die Klasse Uri für URLs verwenden, da Path.Combine für Verzeichnispfadoperationen verwendet wird.

Stellt eine Objektdarstellung eines Uniform Resource Identifier (URI) und leichten Zugriff auf die Teile des URI bereit.

Uri baseUri = new Uri(mypath); 
Uri myUri = new Uri(baseUri, "Upload/Images/"); 
string uploadPath = myUri.AbsoluteUri; 

Und die URL zu erhalten, können AbsoluteUri Eigenschaft verwendet werden.

Verwandte Themen