2010-05-26 4 views
6

Довольно простой вопрос; как найти путь к локальному каталогу, в котором находится мой exe? As-in у меня есть .exe, и в программе мне нужно создать txt-файл в каталоге, где находится exe!Путь локального каталога

[язык - C#]

Итак, если ехе находится в C:/Temp и запускается оттуда; мой txt должен быть создан в C:/Temp

Если пользователь хочет переместить exe в D:/Temp и оттуда оттуда; Я должен был бы создать txt-файл в D:/Temp

Я попробовал Directory.GetCurrentDirectory(), но возвращает каталог выполнения программы!

ответ

15

Assembly.GetExecutingAssembly().Location

+9

Класс «Assembly» является частью пространства имен System.Reflection - для тех, кто будет искать это ... –

0

Вы можете попробовать это:

this.GetType().Assembly.CodeBase 

или, если это приложение WinForms

Application.ExecutablePath 
6

попробовать этот

sPath = System.AppDomain.CurrentDomain.BaseDirectory; 

или еще

sAppPath = Environment.CurrentDirectory; 
1

Аналогичная информация находится в System.Appdomain.BaseDirectory, базовом каталоге, который используется в сборе для сборки. В простых случаях это укажет на расположение оригинальной сборки .exe.

String path = AppDomain.CurrentDomain.BaseDirectory; 
0

Вы можете использовать Application.StartupPath. Он Получает путь к исполняемому файлу, который запустил приложение, не включая имя исполняемого файла.

+1

При запуске из отладчика в VS 2010, который разрешает «C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE ". –

Смежные вопросы