2011-04-08 4 views
18

Je dois y lire un fichier. J'ai essayé Assembly.ExecutingAssembly etc. mais cela ne marche pas.Comment rechercher par programme un chemin de dossier ASP.NET App_Data

+1

double possible de [ASP.NET MVC - Trouver chemin d'accès absolu dans le dossier App_Data du contrôleur] (http://stackoverflow.com/ questions/1268738/asp-net-mvc-find-chemin-absolu-à-l'application-dossier-de-données-du-contrôleur) – Kev

Répondre

26

De asp.net il est simple:

Server.MapPath("~/App_Data");//anywhere 
+1

Sauf parfois ce n'est pas le cas. Les sites Web déployés ont souvent leur App_Data dans '~/bin/App_Data', mais utilisent' ~/App_Data' localement. L'utilisation de la substitution '| DataDirectory |' est rompue dans ces cas. Voir http://stackoverflow.com/questions/18706945/datadirectory-returns-wrong-path-to-appdata-folder –

+0

@CharlesBurns corrigé, voir à votre question – Roland

+0

Je le fais dans une classe cs et l'objet Serveur était donner des problèmes. HttpContext.Current.Server l'a fait fonctionner. –

7

est une autre façon:

AppDomain.CurrentDomain.GetData("DataDirectory"); 
+1

Cela n'est pas documenté sur MSDN, donc je ne recommanderais pas d'utiliser ce – Hoppe

+1

@Hoppe Mais je l'utilise et cela a fonctionné pour moi –

3

String base = AppDomain.CurrentDomain.BaseDirectory; // En utilisant le code ci-dessus, vous obtiendrez le répertoire de base de vos applications. String pathToData_App = base + "/App_Data/SqLite.db";

Le code ci-dessus fonctionne pour moi.

2

je devais exécuter des scripts pour Elmah AppData donc est utilisé ce

var elmahScript = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ELMAH-1.2-db-SQLServer.sql"); 
Questions connexes