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

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

概述有没有办法修改OpenFileDialog的行为,以便它查看它打开的文件夹中的文件内部,然后根据其内容忽略某些文件? 一个例子是打开一个充满Zip文件的文件夹,但只显示包含某个文件的文件夹. 从文档中,有HookProc,但我不确定我是如何使用它的. 请注意,如果可能,我意识到这将是一个相对缓慢的 *** 作.目前我并不关心性能. 谢谢! 我不会忽视OpenFileDialog的复杂性.构建一个真正有用的 有没有办法修改OpenfileDialog的行为,以便它查看它打开的文件夹中的文件内部,然后根据其内容忽略某些文件?

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

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

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

谢谢!

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

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

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

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

总结

以上是内存溢出为你收集整理的c# – 根据内容过滤OpenFileDialog中显示的文件?全部内容,希望文章能够帮你解决c# – 根据内容过滤OpenFileDialog中显示的文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1243274.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存