Comment trouver le chemin de l'application dans une application console ?
En Formulaires Windows je peux utiliser Application.StartupPath
pour trouver le chemin actuel, mais cela ne semble pas être disponible dans une application console.
Comment trouver le chemin de l'application dans une application console ?
En Formulaires Windows je peux utiliser Application.StartupPath
pour trouver le chemin actuel, mais cela ne semble pas être disponible dans une application console.
La réponse ci-dessus correspondait à 90 % de ce dont j'avais besoin, mais elle renvoyait un Uri au lieu d'un chemin normal.
Comme expliqué dans le post des forums MSDN, Comment convertir un chemin URI en chemin de fichier normal ? j'ai utilisé ce qui suit :
// Get normal filepath of this assembly's permanent directory
var path = new Uri(
System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
).LocalPath;
Si vous cherchez un moyen compatible avec .NET Core, utilisez
System.AppContext.BaseDirectory
Cela a été introduit dans .NET Framework 4.6 et .NET Core 1.0 (et .NET Standard 1.3). Voir : Propriété AppContext.BaseDirectory .
Selon cette page ,
C'est le remplacement préféré de AppDomain.CurrentDomain.BaseDirectory dans .NET Core.
Pour les applications de console, vous pouvez essayer ceci :
System.IO.Directory.GetCurrentDirectory();
Sortie (sur ma machine locale) :
c : \users\xxxxxxx\documents\visual studio 2012 \Projects\ImageHandler\GetDir\bin\Debug
Ou vous pouvez essayer (il y a un backslash supplémentaire à la fin) :
AppDomain.CurrentDomain.BaseDirectory
Sortie :
c : \users\xxxxxxx\documents\visual studio 2012 \Projects\ImageHandler\GetDir\bin\Debug\
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
7 votes
Avez-vous installé .NET Framework sur la machine cible (Client, Développement) ? Si votre réponse est vraie ; Alors, vous pouvez ajouter une référence à System.Windows.Forms.dll et utiliser Application.StartupPath ! C'est le meilleur moyen si vous voulez éviter les exceptions futures !
0 votes
AppDomain.BaseDirectory est le répertoire de l'application. Soyez conscient que l'application peut se comporter différemment dans l'environnement VS et l'environnement Win. Mais AppDomain devrait être le même que application.path mais j'espère que ce n'est pas seulement pour IIS.