Відповіді:
Один метод:
System.AppDomain.CurrentDomain.BaseDirectory
Ще один спосіб зробити це:
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
Ось ще:
System.Reflection.Assembly.GetExecutingAssembly().Location
Ви також можете використовувати перший аргумент аргументів командного рядка:
String exePath = System.Environment.GetCommandLineArgs()[0]
Я використовував просто string baseDir = Environment.CurrentDirectory;
і його роботу для мене.
Щасти
Редагувати:
Я раніше видаляв цей тип помилки, але я вважаю за краще редагувати її, тому що я думаю, що мінусова точка у цій відповіді допомагає людям дізнатися про неправильний шлях. :) Я зрозумів, що наведене вище рішення не є корисним, і я змінив його на string appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory;
Інші способи його отримання:
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);
Щасти
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
string dir = Path.GetDirectoryName(exePath);
Спробуйте це!
Я спробував це:
label1.Content = Directory.GetCurrentDirectory();
і отримати також каталог.