Перетаскивание файлов в .exe устанавливает другой рабочий каталог - PullRequest
4 голосов
/ 19 мая 2009

Если у меня есть обычное консольное приложение (или любое другое приложение в этом отношении), и я перетаскиваю файл в файл .exe с помощью проводника Windows (чтобы использовать этот файл как «ввод командной строки»), текущий каталог установлен в другой каталог (моя домашняя папка?), а не каталог, в котором находится приложение. Если я запускаю приложение, дважды щелкнув по нему, текущий каталог будет установлен правильно.

В чем причина этого? Есть ли способ использовать папку приложения в качестве текущего каталога?

Ответы [ 2 ]

2 голосов
/ 19 мая 2009

В поисках причины я нашел это на autoitscript.com :

[Приложение] просто наследует любой рабочий каталог Проводника

Это согласуется с моими собственными наблюдениями, например, с программируемыми клавишами на клавиатурах.

Я работаю, сбрасывая рабочий каталог. В C # вы можете сделать это так:

System.Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

Это также необходимо сделать при запуске моно-приложения в Linux без использования командной строки.

0 голосов
/ 16 июля 2009

Именно поэтому ваше приложение не должно полагаться на рабочие каталоги для начала. Полный путь к файлу будет указан в командной строке. Разберите путь, если необходимо.

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