Узнайте "последний каталог" SaveFileDialog - PullRequest
0 голосов
/ 16 мая 2019

У меня есть вид, который содержит текстовое поле и кнопку. Кнопка показывает SaveFileDialog - Выбранный путь к файлу будет назначен текстовому полю.

  var saveFileDialog = new System.Windows.Forms.SaveFileDialog();
  var lastPath = saveFileDialog.InitialDirectory; //empty

Я бы хотел, чтобы знал местоположение , в котором SaveFileDialog открывается на ShowDialog.

Я знаю, что могу установить InitialDirectory, но это свойство по умолчанию пусто. И я явно не хочу устанавливать InitialDirectory, моя цель - получить тот, который форма каким-то образом запоминает.

Есть ли способ получить это (без дополнительного «сохранения» для следующего вызова).

1 Ответ

2 голосов
/ 16 мая 2019

Путь идет из реестра -

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Comdlg32\LastVisitedPidlMRU

или для более старых ОС Windows HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Comdlg32\OpenSaveMRU

Также обратите внимание, что @Jimi упомянул о свойстве RestoreDirectory.

Редактировать: Сначала я думал, что regkey / value - это просто строка в юникоде, но его не так просто использовать. Так что пересмотрите этот подход. Если вам действительно нужно выяснить, как работают ключи, я предлагаю вам взглянуть на - https://github.com/aelij/svcperf/blob/master/src/Viewer/UIUtils/MruFileHelper.cs

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