Как получить Путь, предшествующий Exceuting Assembly - PullRequest
0 голосов
/ 29 июня 2009

У меня есть несколько файлов, расположенных в

C: \ MyApp \ file.txt

и текущее исполнение в in debud filder

C: \ MyApp \ Bin \ Debug \

Я хочу получить адрес выше "file.txt" во время выполнения ..

Я попробовал это

Assembly.GetExecutingAssembly (). Местоположение

это дает мне C: \ MyApp \ Bin \ Debug \ MyApp.exe

как я могу получить адрес "file.txt"

Ответы [ 3 ]

1 голос
/ 29 июня 2009

Папка «Debug» (и папка «Release») - это фактический вывод сборки вашего проекта. Если вы не включили file.txt в проект и отметили его как «Копировать в выходной каталог», то это не считается частью вывода сборки, и ваше приложение не должно пытаться загрузить его.

По сути, просто установите «Копировать в выходной каталог» на «Копировать всегда» или «Копировать, если новее», и продолжайте использовать путь "file.txt"

1 голос
/ 29 июня 2009

Вы не можете, так как файл и скомпилированное приложение не имеют никакого отношения. Что если вы переместили MyApp.exe куда-нибудь еще?

У вас есть 2 варианта:

  1. Включить файл.txt в ваш проект в качестве файла содержимого (он будет включен в вывод и в ту же папку, что и MyApp.exe)
  2. Использовать конфигурацию - разрешить пользователю определять, где искать файл. Вы можете использовать AppSettings для этого, например.

Ну, технически это возможно, поскольку вы всегда можете перейти к родителю текущего каталога («MyAppPath \ ..»), но на самом деле это просто плохая идея ...

0 голосов
/ 29 июня 2009

Путь к вашей исполняемой папке можно получить с помощью:

AppDomain.CurrentDomain.BaseDirectory

Чтобы получить то, что вы хотите, вы можете сделать следующее

string fileTxtPath = AppDomain.CurrentDomain.BaseDirectory + "..\\file.txt";

Конечно, если у вас есть файл, связанный с вашим проектом, вы должны включить его в ту же папку, что и ваш исполняемый файл. Щелкните его правой кнопкой мыши в Visual Studio и перейдите в свойства, затем выберите в параметре «Копировать в каталог вывода» параметр «Всегда копировать».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...