Перетаскивание файлов в EXE-файл устанавливает различный рабочий каталог

голоса
4

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

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

Задан 19/05/2009 в 14:43
источник пользователем
На других языках...                            


2 ответов

голоса
2

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

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

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

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

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

Вы также должны были бы сделать это, когда вы начинаете моно приложения на Linux без использования командной строки.

Ответил 19/05/2009 в 15:01
источник пользователем

голоса
0

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

Ответил 16/07/2009 в 01:25
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more