【问题标题】:FileChooser to select a directory, not a fileFileChooser 选择目录,而不是文件
【发布时间】:2010-09-21 13:56:18
【问题描述】:

我的代码处理 Windows 机器上一个文件夹中的所有文件。我想为用户(恰好也是我)提供选择要处理的文件夹的选项,使用标准的文件选择器对话框。

我正在尝试使用GetOpenFileName 函数来实现这一点。 (我实际上是通过 pywin32 从 Python 调用它,但这不应该是相关的。)

我可以让它选择一个特定的文件,但我看不到任何让用户选择文件夹的选项。

是否有我不理解的标志组合,是我完全调用了错误的函数还是有其他习惯用法?

【问题讨论】:

    标签: windows pywin32 filechooser


    【解决方案1】:

    不幸的是,我认为您完全调用了错误的函数。我已经有一段时间没有做过 Win32 gui 的东西了。但我似乎记得有一种不同的方式可以调出“选择目录”框。它不是一个直接的 Win32 函数,而是一些 shell API 函数,需要一大堆代码才能完成最简单的事情。

    更新:谷歌一点点揭示了SHBrowseForFolder 函数。

    更新二:这里是example for Python

    【讨论】:

      【解决方案2】:

      正如 Greg 提到的,你想要的函数是一个 shell 函数。你需要的具体函数是SHBrowseForFolder,调用起来很麻烦。还有PyWin32 documentation for it 提到了browse_for_folder.py 示例。

      【讨论】: