Comment obtenir le répertoire d'exécution de l'application console

J'ai essayé d'obtenir le répertoire de l'application console en utilisant le code ci-dessous,

Assembly.GetExecutingAssembly().Location

Mais celui-ci me donne où réside l'assemblage. Cela peut être différent de l'endroit où j'ai exécuté l'application.

Mon application console analyse les journaux sans paramètres. Il doit aller dans le dossier logs/ à l'intérieur du dossier de l'exécutable ou si je lui donne un chemin vers logs/ Il l'analyse.

47
demandé sur Ryan Gates 2012-06-12 13:19:41

3 réponses

Utilisez Environment.CurrentDirectory.

Obtient ou définit le chemin complet du répertoire de travail en cours.
(MSDN environnement.Propriété CurrentDirectory )

string logsDirectory = Path.Combine(Environment.CurrentDirectory, "logs");

Si votre application s'exécute dans c:\Foo\Bar logsDirectory pointera vers c:\Foo\Bar\logs .

79
répondu Stefan 2012-06-12 09:26:29

Utilisez ceci:

System.Reflection.Assembly.GetExecutingAssembly().Location

Combinez cela avec

System.IO.Path.GetDirectoryName if all you want is the directory.
23
répondu Sunny 2012-06-12 09:29:07

Moyen le plus sûr:

string temp = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
6
répondu dtsg 2012-06-12 13:24:20