OpenFileDialog и Environment.CurrentDirectory

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

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

3 ответа

Решение

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

Примечание: как указано в комментарии к вашему вопросу, перейдите по ссылке на повторяющийся вопрос.

FileDialog.RestoreDirectory property.

Посмотри на

Различие AppDomain.CurrentDomain.BaseDirectory и Environment.CurrentDirectory

Какая разница в следующем?

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

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

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

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

Другие вопросы по тегам