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

2024-02-29

有没有办法修改 OpenFileDialog 的行为,以便它查看它打开的文件夹中的文件,然后根据其内容忽略某些文件?

一个示例是打开一个充满 Zip 文件的文件夹,但仅显示包含特定文件的文件夹。

从文档中,有 HookProc 但我不太确定如何使用它。

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

Thanks!


我不会忽视 OpenFileDialog 的复杂性。建立一个真正有效的系统并不容易。当您构建自己的对话框时,它不是“正常”对话框,因此会让用户感到困惑。即使你做得很好也是如此,这是困难的。因此,我建议您坚持扩展已有的内容,而不是编写新的内容。

Check 本文是 OFD 的扩展 http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx这可能/可以进行调整以完全满足您的要求。您用 C# 编写了一个回调来响应路径选择。

有关的:文件夹浏览器对话框Ex http://dotnetzip.codeplex.com/SourceControl/changeset/view/29832#432677是FolderBrowserDialog 上的类似扩展。不管名称如何,您都可以将其配置为搜索文件和文件夹。当选择某些内容(文件夹、文件)时会调用一个回调,在该回调中您可以执行您需要执行的操作。例如,查看文件夹内的文件并填充文件列表以仅显示这些文件。


您可能考虑的另一个选择是Ookii 的对话框库 http://www.ookii.org/software/dialogs/。这是 OpenFileDialog 的开源实现,它包括 Vista 中所有新对话框内容的 COM 包装器。使用该库,您可以弹出 Vista OpenFileDialog 并接收来自IFileDialog事件 http://msdn.microsoft.com/en-us/library/bb775876.aspx接口,C# 代码。 OnFolderChange() 就是这样的事件之一。在处理程序中,您可以调用 IFolder.GetFolder() 这将为您提供外壳项目 http://msdn.microsoft.com/en-us/library/bb761144(VS.85).aspx,它为您提供用户要更改到的文件夹。下一步将是逐项列出并可能过滤文件集,这是我将留给读者的练习......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据内容过滤 OpenFileDialog 中显示的文件? 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • System.IO.FileNotFoundException:找不到网络路径。在 Windows 7 上使用 DirectoryEntry 对象时出现异常

    我正在尝试使用 DirectoryEntry 对象连接到远程 Windows 7 计算机 这是我的代码 DirectoryEntry obDirEntry new DirectoryEntry WinNT hostName hostName
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 防止 pandoc 将 $ 转换为 mediawiki

    我正在使用 pandoc 将 markdown 文件转换为 mediawiki 表 文件内容mtcars md c1 c2 7 P A A 8 AB B 9 P A C 然后我就这样做了 我使用的是 Ubuntu 64 位和 pandoc
  • 在 Objective-C/cocoa 中抛出异常

    在 Objective C cocoa 中抛出异常的最佳方法是什么 I use NSException raise format 如下 NSException raise Invalid foo value format foo of d
  • 为什么我的 SVG 在 Polymer 组件内由 D3 渲染,没有样式?

    这里有一个Plunker我的问题的草图 http plnkr co 7hW5Rp71Qy1IwptZx4i6 相关代码 包含 Polymer 模板及其调用
  • Kendo UI 网格在调用读取后未填充

    好吧 我还有另一个 我确信我又错过了一些简单的东西 使用 json 结果集填充 Kendo 网格 加载是通过从剑道下拉列表控件中进行选择来触发的 我可以看到数据从我的 webapi 返回并转换为 json 结果 但数据未显示在网格中 我错过
  • 避免以编程方式启动使用创建的上下文的 HiveThriftServer2

    在 Spark 2 0 0 中 我们尝试使用 ThriftServer 从 Spark 临时表中查询数据 首先 我们创建了启用了 Hive 支持的 SparkSession 目前 我们使用 sqlContext 启动 ThriftServe
  • 轨道模型和独特的组合

    我有一个 Rails 应用程序 其中有一个名为friendrequests 它看起来像这样 user1 id integer user2 id integer hasaccepted boolean 我正在创建一个添加好友的选项 但好友请求
  • C++派生类型的自动工厂注册

    像我之前的许多人一样 我正在尝试让我的派生类型自动向我的工厂注册 我通读了很多问题 并试图专注于我在那里没有找到的问题 除了自动注册之外 一切都运行良好 我的目标 automatically register any derived cla
  • PHP语言规范中“[”怎么会是运算符呢?

    On the http php net manual en language operators precedence php http php net manual en language operators precedence php
  • 不带 @XMLRootElement 的 JAXB 部分解组元素

    我正在使用部分解组的例子JAXB 但我无法解组不在根级别的 XML 元素 因为它们没有 XmlRootElement 标记 在我的示例中 我尝试读取shipTo Element而不是purchaseOrder Element 通常我会使用
  • 将日期附加到使用 Sweave 生成​​的 PDF

    我通过 Sweave 生成 每日报告 我想在 PDF 名称中附加当前日期 格式为 YYYYMMDD 我使用以下代码来生成文件 rnwfile lt system file Sweave Margin Rnw package utils Sw
  • 如何在 Django 中记录成功和失败的登录和注销尝试?

    我想在 Django 中记录所有用户登录和注销尝试 该记录应显示所有登录 注销用户的历史记录 IP 地址和登录 注销时间 The django admin log表似乎只记录其他模型的ADD DELETE CHANGE活动 而不是用户访问的
  • 简单来说,什么是工厂?

    什么是工厂 我为什么要使用工厂 你熟悉吗JDBC https docs oracle com javase tutorial jdbc basics index html 这是一个完整的 抽象 工厂 这是一个很好的现实世界例子 Factor
  • 更改数据库模式和单元测试

    在我们开始之前 我知道有相当多的人认为访问数据库的测试不是 单元测试 也许 集成测试 是一个更好的名字 无论哪种方式 开发人员都会测试数据库 为了启用单元测试 我有一个开发人员本地数据库 我会在每次测试开始时清除该数据库并填充一组已知的数据
  • 在 Plotly 中用新数据更新图形的高性能方法?

    我想使用每个条形值的滑块来更新条形图 但是 我希望条形动态变化as滑块发生变化 我已经实现了这个使用oninput 目前 我有以下内容 这是相当滞后的 HTML h1 Plotly Test h1 div style width 480px
  • 检索 tableview Swift 领域的 List 属性计数

    我正在使用 Realm 3 和 Swift 4 但对 Realm 和 Swift 还很陌生 这里需要指导 给定这个领域模型 class Person Object Mappable let dog List
  • pip install 错误:安装脚本指定了绝对路径

    我遇到了 pip 的奇怪行为 呼唤 pip install git https github com username repo 通常可以工作 但在某些包上它会以异常方式失败 Downloading unpacking git git gi
  • 为 python3 安装 OpenCV

    我遵循了许多手册 教程如何安装OpenCV http docs opencv org 2 4 doc tutorials introduction linux install linux install html highlight ins
  • Postgresql gem install pg 0.18.4 通过,捆绑安装失败

    Mac 操作系统 El Capitan 捆绑包安装失败并显示 compiling pg connection c pg connection c 2394 3 warning implicit declaration of function
  • 使用多部分列标识符

    我确信这必须在某个地方记录下来 但在我的一生中 我似乎找不到任何解释该行为的实际文档 采用 4 种方法来引用表格 我不相信还有更多 但请随时纠正我 当前数据库 远程数据库 链接服务器 Synonym 他们在使用多部分列标识符时的行为似乎有所
  • 根据内容过滤 OpenFileDialog 中显示的文件?

    有没有办法修改 OpenFileDialog 的行为 以便它查看它打开的文件夹中的文件 然后根据其内容忽略某些文件 一个示例是打开一个充满 Zip 文件的文件夹 但仅显示包含特定文件的文件夹 从文档中 有 HookProc 但我不太确定如何