OpenFileDialog и Environment.CurrentDirectory - PullRequest
2 голосов
/ 12 января 2010

После использования OpenFileDialog для выбора файла Environment.CurrentDirectory изменяется на папку файла.Это нормально?

Насколько я понимаю, Environment.CurrentDirectory всегда должен быть папкой приложения.

Ответы [ 3 ]

8 голосов
/ 12 января 2010

Посмотрите на

Разница между AppDomain.CurrentDomain.BaseDirectory и Environment.CurrentDirectory

В чем разница следующих?

  1. AppDomain.CurrentDomain.BaseDirectory
  2. Environment.CurrentDirectory
  3. AppDomainSetup.ApplicationBase

1 и 3 в основном одинаковы. Разница в том, что AppDomainSetup.ApplicationBase is доступный для записи, но AppDomain.BaseDirectory только для чтения, так как вы не можете изменить его после создания домена приложения.

2 - это нечто совершенно другое. Он используется для разрешения относительных путей, между прочим Вы можете изменить CurrentDirectory в любое время в вашем код, и он также может быть изменен такие вещи, как FileDialogs.

3 голосов
/ 12 января 2010

Поскольку диалоговое окно изменяет Environment.CurrentDirectory при поиске файлов или папок .. или выборе их для загрузки ... и т. Д.

Примечание. Как указано в комментарии к вашему вопросу, перейдите по ссылке на дубликат вопроса . используйте

FileDialog.RestoreDirectory property.
1 голос
/ 12 января 2010

Да, это нормально, и нет текущего каталога не всегда папка приложения. Запустите cmd и используйте команду cd, чтобы изменить каталог. Вы только что изменили то же значение, которое отображается в Environment.CurrentDirectory! Вы должны когда-либо использовать текущее значение каталога, только когда пользователь указывает имя файла через командную строку или аналогичный механизм. Если вы хотите, чтобы папка приложения использовала свойство Application.StartupPath.

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