Comment obtenir le dossier racine de ASP.NET application
Je suis en train d'essayer d'obtenir le dossier racine de l'application. J'ai utilisé le code suivant, mais cela donne à la bin
dossier, mais ce dont j'ai besoin est le dossier racine de l'application. Est-il possible de faire cela?
//This is the full directory and exe name
String fullAppName = Assembly.GetExecutingAssembly().GetName().CodeBase;
//This strips off the exe name
String fullAppPath = Path.GetDirectoryName(fullAppName);
Je suis en supposant que vous êtes de débogage, de sorte que le
Voulez-vous dire
Je veux l'emplacement du fichier de Solution, parce que j'ai besoin d'ajouter un dossier à cet emplacement pour enregistrer les fichiers téléchargés dans
bin
dossier est le répertoire d'exécution de l'application. Voulez-vous l'emplacement du fichier de Solution?Voulez-vous dire
bin\Debug
ou bin\Release
au lieu de bin
?Je veux l'emplacement du fichier de Solution, parce que j'ai besoin d'ajouter un dossier à cet emplacement pour enregistrer les fichiers téléchargés dans
OriginalL'auteur user517406 | 2011-05-06
Vous devez vous connecter pour publier un commentaire.
L'endroit où votre fichier exe est, est la racine de l'application.
Vous pouvez utiliser
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
pour obtenir le chemin de l'application.Si vous voulez trouver le dossier de la solution est, je suggère de commencer à l'exe emplacement, puis à pied jusqu'à l'arborescence de répertoires jusqu'à ce que vous arrivez à un dossier contenant un .la sln fichier. Pas trop sûr de savoir pourquoi vous voulez faire cela, cependant.
EDIT: Viens de comprendre que vous êtes en train de créer un asp.net site. Dans ce cas, vous devriez être en mesure d'utiliser ci-dessous (qui se trouve ici):
Je dirais qu'il pourrait faire plus de sens d'avoir un dossier dans le dossier que l'exe est dans, pas le fichier sln. Toutefois, si le fichier exe est exécuté à partir d'un sous-dossier de celui de la sln fichier est alors ma suggestion ci-dessus devrait fonctionner.
Est D'Application.ExecutablePath une nouvelle chose en C# 4, comme il n'est pas reconnu dans VS2008?
OK, c'est Windows des Formes plutôt que des Formulaires Web
Dans le cas où quelqu'un le trouve via google, il me semble que ce code est une façon agressive.
System.Web.HttpContext.Current.Server.MapPath(null);
devrait le faire. De docs: "Si le chemin est nulle, alors la méthode MapPath retourne le chemin physique complet du répertoire contenant l'application en cours."OriginalL'auteur George Duckett
Votre programme n'a pas les connaissances ou le lien de son environnement de développement, donc il n'y a pas d'autre moyen pour elle de connaître la solution répertoire autre que vous avez à lui dire.
Soit aller pour le parent-parente répertoire, comme d'autres l'ont suggéré, ou de le passer comme un argument dans le fichier exécutable, ou vérifier cette SORTE de post (Comment obtenez-vous la solution répertoire en C#) qui ont soigné les moyens pour ce faire.
OriginalL'auteur CharlesB
qu'est-ce que la "racine" du dossier si ce n'est le dossier où le fichier exe est exécuté à partir d' ?
il pourrait être n'importe quoi !
vous pouvez utiliser
Directory.Parent
pour naviguer vers le haut de l'arbre, mais vous devez écrire le code pour que spécifiquementOriginalL'auteur Menahem
Si vous tentez de modifier le dossier de la solution, peut-être plus logique de créer un script de compilation que d'une application d'exécution. À partir de ces scripts, vous avez un accès facile à la structure de la solution.
http://visualstudiohacks.com/general/customize-your-project-build-process/
OriginalL'auteur Tim Medora