88 votes

Obtenir le chemin absolu de l'exécutable, en utilisant C# ?

Jetez un coup d'œil à ce pseudocode :

string exe_path = system.get_exe_path()
print "This executable is located in " + exe_path

Si je construis le programme ci-dessus et que je place l'exécutable dans le répertoire C:/meow/ Il imprimerait This executable is located in C:/meow/ à chaque fois qu'il est exécuté, quel que soit le répertoire de travail actuel.

Comment puis-je facilement réaliser cela en utilisant C# ?

115voto

Mark Rushakoff Points 97350

MSDN propose un article qui dit d'utiliser System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ; si vous avez besoin du répertoire, utilisez System.IO.Path.GetDirectoryName sur ce résultat.

Ou bien, il y a le plus court Application.ExecutablePath qui "Obtient le chemin du fichier exécutable qui a lancé l'application, y compris le nom de l'exécutable", ce qui pourrait signifier qu'il est légèrement moins fiable en fonction de la façon dont l'application a été lancée.

66voto

user2212907 Points 179
AppDomain.CurrentDomain.BaseDirectory

13voto

newb Points 31
using System.Reflection;

string myExeDir = new FileInfo(Assembly.GetEntryAssembly().Location).Directory.ToString();

8voto

user1 Points 602
var dir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

J'ai cherché la réponse la mieux notée et je n'ai pas obtenu ce que j'attendais. J'ai dû lire les commentaires pour trouver ce que je cherchais.

C'est pourquoi je publie la réponse dans les commentaires afin de lui donner la visibilité qu'elle mérite.

4voto

Mike de Klerk Points 1606

"Obtient le chemin d'accès ou l'emplacement UNC du fichier chargé qui contient le manifeste."

Voir : http://msdn.microsoft.com/en-us/library/system.reflection.assembly.location.aspx

Application.ResourceAssembly.Location

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