J'ai trouvé des solutions pour Windows Forms avec AppDomain, mais quel serait l'équivalent pour un objet WPF Application
?
Une méthode:
System.AppDomain.CurrentDomain.BaseDirectory
Une autre façon de le faire serait:
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
Voici un autre:
System.Reflection.Assembly.GetExecutingAssembly().Location
Vous pouvez également utiliser le premier argument des arguments de la ligne de commande:
String exePath = System.Environment.GetCommandLineArgs()[0]
J'ai utilisé simplement string baseDir = Environment.CurrentDirectory;
et son travail pour moi.
Bonne chance
Modifier:
J'avais l'habitude de supprimer ce type d'erreur mais je préfère l'éditer parce que je pense que le point négatif de cette réponse aide les gens à connaître le mauvais chemin. :) J'ai compris que la solution ci-dessus n'était pas utile et je l'ai changée en string appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory;
D'autres moyens de l'obtenir sont les suivants:
1. string baseDir =
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
2. String exePath = System.Environment.GetCommandLineArgs()[0];
3. string appBaseDir = System.IO.Path.GetDirectoryName
(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
Bonne chance
Essaye ça. N'oubliez pas using System.Reflection
.
string baseDir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
string dir = Path.GetDirectoryName(exePath);
Essaye ça!
J'ai essayé ceci:
label1.Content = Directory.GetCurrentDirectory();
et obtenez aussi le répertoire.
Vous pouvez également utiliser librement Application.StartupPath à partir de System.Windows.Forms, mais vous devez ajouter une référence à System.Windows.Forms Assembly!