FileChooser для выбора каталога, а не файла
-
07-07-2019 - |
Вопрос
Мой код обрабатывает все файлы в папке на коробке Windows. Я хочу предложить пользователю (который также является мной) возможность выбрать папку для обработки с помощью стандартного диалога выбора файлов.
Я пытаюсь использовать GetOpenFileName , чтобы это произошло. (На самом деле я звоню из Python через py32 , но это не должно относиться к делу.)
Я могу заставить его выбрать конкретный файл, но я не вижу вариантов, позволяющих пользователю выбрать папку вместо этого.
Есть ли комбинация флагов, которую я не понял, я вызываю неправильную функцию полностью или есть другая идиома для этого?
Решение
К сожалению, я думаю, что вы вызываете неправильную функцию полностью. Прошло много времени с тех пор, как я работал с Win32 в графическом интерфейсе ... но я, кажется, вспоминаю, что был другой способ вызвать " выбрать каталог " коробка. Это была не простая функция Win32, а какая-то API-функция оболочки, для выполнения которой требовалась целая куча кода.
Обновление: немного Google показывает SHBrowseForFolder функция.
Обновление два: вот пример для Python а>. р>
Другие советы
Как упоминает Грег, нужная вам функция является функцией оболочки. Вам нужна SHBrowseForFolder
. , который довольно грязный, чтобы позвонить. Для этого есть также документация PyWin32 , в которой упоминается browse_for_folder. py
sample.