2009-06-03 6 views
0

Comment rechercher un sous-répertoire sur mon site Web ASP.Net?Sous-répertoire de recherche ASP.Net

Je sais si cela était un projet régulier Winform, je pourrais facilement l'obtenir par ce qui suit:

Environment.CurrentDirectory 

ou

System.IO.Directory.GetCurrentDirectory() 

puis

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

Comment puis-je construire le chemin d'accès à un sous-dossier appelé Portfolio dans ASP.Net?

J'ai un problème pour tout construire à partir du http://??????????/Portfolio. Comment puis-je trouver le ?????? partie?

J'ai essayé le code ci-dessus mais on m'a donné un répertoire complètement différent ...

Je ne veux pas tout le code dur avant que le dernier sous-dossier parce qu'il sera différent sur un autre serveur.

Répondre

2

L'appel Directory.GetCurrentDirectory() peut être trompeur lorsque vous l'appelez depuis une application ASP.NET. La meilleure façon de contourner ce problème consiste à utiliser Server.MapPath() à la place, ce qui vous permettra de mapper un dossier Web à son emplacement sur le disque.

Ainsi, par exemple, l'exécution de ce code:

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

sera mis « path » égale à l'emplacement de ce dossier sur le disque.

Si vous exécutez ce code en dehors du contexte d'une classe Page ou d'un contrôle, vous ne pourrez pas accéder directement à l'objet Server. Dans ce cas, votre code ressemblerait à ceci:

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

Si je vous comprends bien, vous pouvez simplement accéder avec:

"/portfolio" 

Le système concaténer «/portefeuille » à l'URL, si, par exemple, il est « http://site.com » vous obtiendrez "http://site.com/portfolio "

Si vous voulez que le chemin d'accès physique, vous pouvez utiliser

server.mappath("/portfolio") 

et il retournera le répertoire physique associé (pour examen ple E: \ websites \ site \ portfolio ")

0

la pièce suivante de lignes vous amène dans le répertoire « bin »

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