1

Когда я открываю окно проводника Windows из приложения (например , Save As, Open и т.д.) он открывает последнее место , что особенно ручка используется. Я хочу, чтобы он открывался до последнего места, которое использовал любой дескриптор .

Обратите внимание, что это не то же самое, что открытие каждого диалога в универсальном местоположении по умолчанию.

Например, когда я переключаюсь между Adobe Photoshop, Premiere и After Effects, мне приходится выбирать файлы для импорта и экспорта в каждом приложении, и каждая комбинация открывает Проводник в последнем месте, где использовалась определенная функция. Это означает, что есть NumApplications × NumDialogs , которые открываются в предыдущий каталог, который я использовал, кто знает, когда , что мне затем нужно вручную перейти в новый каталог проекта.

Как я могу тупить Windows Explorer, чтобы не сохранять определенные пути для дескриптора?


В настоящее время мой обходной путь заключается в том, чтобы в корне каталога моего проекта было открыто одно окно проводника, которое я продолжаю извлекать путь из адресной строки (Alt+D , Ctrl+C), и всякий раз, когда открывается другой дескриптор, я вставляю этот путь. Это все еще вводит дополнительное переключение контекста в мой рабочий процесс во многих местах.

1 ответ1

1

Я хочу открыть все диалоговые окна выбора файлов для последнего использованного местоположения (не зависит от приложения)

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

Это делается с помощью API Common Item Dialog , который был реализован в Windows Vista и использовался во всех более поздних версиях Windows.

Диалог Common Item используется диалогом Open и диалогом Save (которые разделяют большую часть их функций).

API использует IFileDialog::SetDefaultFolder для установки местоположения папки по умолчанию при создании диалогового окна «Открыть» или «Сохранить как», которое относится к конкретному приложению):

Папка по умолчанию - это папка, в которой диалоговое окно запускается при первом его открытии пользователем из вашего приложения. После этого диалоговое окно откроется в последней папке, которую открыл пользователь, или в последней папке, которую он использовал для сохранения элемента. Смотрите State Persistence для более подробной информации.

Вы можете заставить диалоговое окно всегда показывать одну и ту же папку, когда оно открывается, независимо от предыдущего действия пользователя, вызывая IFileDialog::SetFolder . Однако мы не рекомендуем делать это. Если вы вызываете SetFolder до того, как отобразите диалоговое окно, самое последнее местоположение, в котором пользователь сохранял или открывал, не отображается. Если для этого поведения нет очень конкретной причины, это не является хорошим или ожидаемым опытом пользователя, и его следует избегать. Почти во всех случаях IFileDialog::SetDefaultFolder является лучшим методом.

При первом сохранении документа в диалоговом окне «Сохранить» вы должны следовать тем же рекомендациям при определении начальной папки, что и в диалоговом окне «Открыть». Если пользователь редактирует ранее существующий документ, откройте диалоговое окно в папке, где хранится этот документ, и заполните поле редактирования именем этого документа. Вызовите IFileSaveDialog::SetSaveAsItem с текущим элементом до вызова Show .

Диалог общего источника (Windows).

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .