2009-06-03 9 views
0

Wie durchsuche ich ein Unterverzeichnis auf meiner ASP.Net-Website?ASP.Net Suche-Unterverzeichnis

ich wissen, ob dies ein reguläres Winform Projekt war, konnte ich es einfach erhalten durch:

Environment.CurrentDirectory 

oder

System.IO.Directory.GetCurrentDirectory() 

dann

string[] directories = System.IO.Path.Combine(Environment.CurrentDirectory, "Portfolio") 

Wie kann ich bauen der Pfad zu einem Unterordner namens Portfolio in ASP.Net?

Ich habe ein Problem, alles von der http://??????????/Portfolio zu bauen. Wie finde ich das ?????? Teil?

ich den Code oben versucht, bekam aber ein ganz anderes Verzeichnis ...

Ich will nicht zu hart Code alles vor dem letzten Unterordner, weil es anders auf einem anderen Server sein wird.

Antwort

2

Der Aufruf Directory.GetCurrentDirectory() kann beim Aufruf aus einer ASP.NET-App irreführend sein. Der beste Weg, um dies zu umgehen, ist die Verwendung von Server.MapPath() stattdessen, die Sie einen Webordner zu seinem Speicherort auf der Festplatte zuordnen können.

So zum Beispiel, laufen diesen Code:

string path = Server.MapPath("~/Portfolio"); 

gesetzt 'path' gleich die Position des Ordners auf dem Datenträger. Wenn Sie diesen Code außerhalb des Kontexts einer Page oder Steuerelementklasse ausführen, können Sie nicht direkt auf das Objekt Server zugreifen. In diesem Fall würde der Code wie folgt aussehen:

string path = HttpContext.Current.Server.MapPath("~/Portfolio"); 
0

Wenn ich Sie recht verstehe, haben Sie Zugriff auf sie nur mit:

"/portfolio" 

Das System wird verketten „/ Portfolio“ auf die URL, wenn zum Beispiel „http://site.com“ Sie bekommen "http://site.com/portfolio "

Wenn Sie den physischen Pfad möchten, können Sie

server.mappath("/portfolio") 

verwenden und es wird das physische Verzeichnis zugeordnet (für Prüfung zurückgeben ple E: \ websites \ site \ portfolio ")

0

das folgende Stück Linien kommt man zum Verzeichnis ‚bin‘

Assembly asm = Assembly.GetExecutingAssembly(); 
String strAppHome = Path.GetDirectoryName(asm.CodeBase).Replace("file:\\", "");