1

我正在尝试在 C# 中创建一个文件和文件夹对话框。(只是一个警告:我会否决所有FolderBrowserDialog建议。那个对话是对大自然的憎恶)

目前我正在使用CommonOpenFileDialog在 WindowsApiCodePack 中找到的,它具有属性IsFolderPicker,使对话框仅成为文件夹选择器。但是我的用户需要能够选择文件或文件夹。

所以我正在寻找一个对话框,它可以让我选择文件和文件夹。手段无所谓。C#、WPF、WindowsApiCodePack、Ookii 对话框、C++、P/Invoke、Com+、Win32、VB 等...

我只需要一个控件,让我可以选择一个文件或文件夹,我可以从 C# 调用它,并且具有默认的 Windows OpenFileDialog 外观。这可能吗,怎么做?

4

1 回答 1

1

FolderBrowser几年前我定制了对话框。我让它显示输入字段,用户可以在其中指定路径而无需浏览它。我认为可以自定义显示文件和文件夹。

这就是我进行自定义的方式:

我使用 .NET Reflector 来反汇编 .NET 的代码FolderBrowserDialog。我将反汇编代码保存为MyFolderBrowserDialog.

在反映的代码中,我发现调用了接受结构作为参数FolderBrowserDialog的非托管 windows 函数。该结构的成员是一个标志值,可以位掩码以包含您要使用的功能。SHBrowseForFolderBROWSEINFOBROWSEINFOulFlags

在位MyFolderBrowserDialog掩码BIF_EDITBOX (0x00000010)ulFlags获取输入字段。

根据文档,如果您对其进行位掩码BIF_BROWSEINCLUDEFILES (0x00004000)ulFlags则应该包括文件和文件夹,从而解决您的问题。

我实际上并没有尝试让它显示文件,但我认为它可能值得一试。

希望这可以帮助!

于 2013-01-31T08:37:18.233 回答