FileChooser для выбора каталога, а не файла - PullRequest
4 голосов
/ 10 ноября 2008

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

Я пытаюсь использовать функцию GetOpenFileName , чтобы это произошло. (На самом деле я звоню из Python через pywin32 , но это не должно относиться к делу.)

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

Есть ли комбинация флагов, которую я не понял, я вызываю неправильную функцию полностью или есть другая идиома для этого?

Ответы [ 2 ]

4 голосов
/ 10 ноября 2008

К сожалению, я думаю, что вы вызываете неправильную функцию полностью. Прошло много времени с тех пор, как я работал с Win32 GUI ... но я, кажется, вспоминаю, что был другой способ вызвать окно "select directory". Это была не простая функция Win32, а какая-то API-функция оболочки, для выполнения которой требовалась целая куча кода.

Обновление: немного гугла раскрывает функцию SHBrowseForFolder .

Обновление два: А вот пример для Python .

2 голосов
/ 10 ноября 2008

Как упоминает Грег, нужная вам функция - это функция оболочки. Вам нужна конкретная функция SHBrowseForFolder, которую сложно вызвать. Для него также есть документация PyWin32 , в которой упоминается образец browse_for_folder.py.

...