c# – 根据内容过滤OpenFileDialog中显示的文件?

前端之家收集整理的这篇文章主要介绍了c# – 根据内容过滤OpenFileDialog中显示的文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法修改OpenFileDialog的行为,以便它查看它打开的文件夹中的文件内部,然后根据其内容忽略某些文件

一个例子是打开一个充满Zip文件文件夹,但只显示包含某个文件文件夹.

从文档中,有HookProc,但我不确定我是如何使用它的.

请注意,如果可能,我意识到这将是一个相对缓慢的操作.目前我并不关心性能.

谢谢!

解决方法

我不会忽视OpenFileDialog的复杂性.构建一个真正有用的东西并不容易.当您构建自己的对话框时,它不是“正常”对话框,因此会使用户感到困惑.即使你做得很好也是如此,这很难.所以我建议你坚持扩展现有的东西,而不是写一些新东西.

检查可能/可能被调整的this article for an extension of OFD以完全按照您的要求进行操作.你在C#中编写了一个响应路径选择的回调函数.

相关:FolderBrowserDialogEx是FolderBrowserDialog上的类似扩展.尽管名称如此,您可以将其配置为搜索文件以及文件夹.当选择某个(文件夹,文件)时会调用回调,并且在该回调中您可以执行您需要执行的操作.例如,查看文件夹中的文件并填充文件列表以仅显示这些文件.

您可能考虑的另一个选项是dialog library from Ookii.这是OpenFileDialog的开源实现,它包含Vista中所有新对话框内容的COM包装器.使用该库,您可以弹出Vista OpenFileDialog并使用C#代码IFileDialogEvents界面接收事件.一个这样的事件是OnFolderChange().在处理程序中,您可以调用IFolder.GetFolder(),它将为您提供IShellItem,它将为您提供用户正在更改的文件夹.下一步是逐项列出并可能过滤文件集,这是我将留给读者的练习……

猜你在找的C#相关文章