Выбрать файл ИЛИ папку из того же диалога в Windows? - PullRequest
3 голосов
/ 11 ноября 2011

Я бы хотел, чтобы пользователи моей игры для Windows использовали диалоговое окно для выбора папки или файла.В настоящее время я могу сделать один или другой, используя SHBrowseForFolder или GetOpenFileName, но не оба параметра из одного диалога.Это возможно?(Причина в том, что я портирую игру для Mac, где это возможно .)

Ответы [ 3 ]

4 голосов
/ 11 ноября 2011

Когда вы открываете диалоговое окно файла, присвойте ему имя по умолчанию, такое как «Вся папка», и снимите флажок, который требует наличия файла, прежде чем активировать кнопку ОК. Когда диалоговое окно вернется, проверьте имя файла, чтобы увидеть, соответствует ли оно специальной строке «Вся папка», и обработайте его соответствующим образом.

На основании моего ответа на другой вопрос: Как настроить OpenFileDialog для выбора папок?

1 голос
/ 13 июля 2015

Если вы установите OFN_NOVALIDATE в элементе Flags структуры OPENFILENAME, введя имя папки без '\' в конце и нажав Enter (или Open), отправит уведомление CDN_FILEOK в подключаемую процедуру, а не CDN_FOLDERCHANGEУведомление.

Оттуда, вы можете делать все, что вы хотите с путем к папке.Для меня это ошибка, но она может вам помочь.

0 голосов
/ 11 ноября 2011

Насколько мне известно, общие диалоговые окна не могут работать в режиме, в котором вы можете выбрать либо папку, либо файл из того же диалогового окна.

...