OpenFileDialog и Environment.CurrentDirectory

2

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

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

Теги:

3 ответа

3
Лучший ответ

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

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

FileDialog.RestoreDirectory property.
8

Посмотрите

Разница AppDomain.CurrentDomain.BaseDirectory и Environment.CurrentDirectory

В чем разница следующего:

  • AppDomain.CurrentDomain.BaseDirectory
  • Environment.CurrentDirectory
  • AppDomainSetup.ApplicationBase

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

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

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню