58 votes

Obtenir le chemin complet du service Windows

Comment puis-je trouver le dossier dans lequel le fichier .exe du service Windows est installé de manière dynamique ?

Path.GetFullPath(relativePath);

renvoie un chemin basé sur C:\WINDOWS\system32 répertoire.

Cependant, le XmlDocument.Load(string filename) semble fonctionner par rapport au chemin relatif dans le répertoire où le fichier .exe du service est installé.

83voto

Greg Dean Points 12048

Essayez

System.Reflection.Assembly.GetEntryAssembly().Location

67voto

Curtis Yallop Points 639

Essayez ça :

AppDomain.CurrentDomain.BaseDirectory

(Comme ici : Comment trouver le chemin de l'exe du service Windows )

39voto

Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)

5voto

lowglider Points 562

Cela fonctionne pour notre service Windows :

//CommandLine without the first and last two characters
//Path.GetDirectory seems to have some difficulties with these (special chars maybe?)
string cmdLine = Environment.CommandLine.Remove(Environment.CommandLine.Length - 2, 2).Remove(0, 1);
string workDir = Path.GetDirectoryName(cmdLine);  

Cela devrait vous donner le chemin absolu de l'exécutable.

5voto

Chris S Points 32376

Une autre version de ce qui précède :

string path = Assembly.GetExecutingAssembly().Location;
FileInfo fileInfo = new FileInfo(path);
string dir = fileInfo.DirectoryName;

Prograide.com

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.

Powered by:

X