对目录使用 OpenFileDialog,而不是 FolderBrowserDialog

2024-01-17

我想在我的应用程序中拥有一个文件夹浏览器,但是I don't想要使用FolderBrowserDialog。 (有几个原因,比如使用起来很痛苦)

我想使用标准的 OpenFileDialog,但针对目录进行了修改。

举个例子,µTorrent http://utorrent.com/有一个很好的实现(首选项/目录/放入新下载:)。标准的打开文件对话框使用户能够:

  • 将完整路径粘贴到底部的文本字段中
  • 在 Vista 上使用“收藏夹链接”栏
  • 在 Vista 上使用搜索
  • 自动记住最后一个目录
  • more...

有人知道如何实施吗?在 C# 中。


我不确定 uTorrent 但这听起来很像新的 Vista文件对话框 http://msdn.microsoft.com/en-us/library/windows/desktop/bb775966%28v=vs.85%29.aspx设置了 FOS_PICKFOLDERS 选项。其通用 C# 代码如下所示:

var frm = (IFileDialog)(new FileOpenDialogRCW());
uint options;
frm.GetOptions(out options);
options |= FOS_PICKFOLDERS;
frm.SetOptions(options);

if (frm.Show(owner.Handle) == S_OK) {
    IShellItem shellItem;
    frm.GetResult(out shellItem);
    IntPtr pszString;
    shellItem.GetDisplayName(SIGDN_FILESYSPATH, out pszString);
    this.Folder = Marshal.PtrToStringAuto(pszString);
}

完整代码可以找到here http://www.jmedved.com/2011/12/openfolderdialog/.

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

对目录使用 OpenFileDialog,而不是 FolderBrowserDialog 的相关文章

  • 字典的线程安全

    如果我有一个 Dictionary
  • C# 委托实例化与仅传递方法引用 [重复]

    这个问题在这里已经有答案了 我有一个简单的问题 与仅传递函数引用相比 实例化 C 委托有什么优势 我的意思是 Why do Thread t new Thread new ThreadStart SomeObject SomeMethod
  • 如何使用 Regsvr32 注册 .NET COM DLL?

    我有一个使用 COM DLL 的 VB6 应用程序 该DLL是用C 编写的 在 C 项目属性中 我检查了 Register for COM interop 选项 VB6 应用程序在我的开发机器上运行良好 C 代码完全遵循以下格式 CodeP
  • 使用 boost::asio 是否有一种可移植的方法来查找空闲端口号

    我目前正在尝试找出一种方法来查找空闲端口号以建立连接 最好使用 boost asio 然后 该端口号将用于侦听 只有这样我才能打开套接字 大致来说 有没有办法做到 tcp resolver query query localhost por
  • 带有 Prism 区域适配器的 AvalonDock

    我看到了一些关于 SO 的问题 但似乎没有一个适合我 我希望能够使用伟大的使用 Prism 4 但是 所有示例区域适配器均适用于 Avalondock 1 x 系列 我无法使其工作 有人有关于如何为 AvalonDock 的 LayoutD
  • 如何使用“std::array”作为“template class”形式的模板参数?

    请考虑以下事项tree class template
  • 驱蚊程序?

    不 我认真的 最近 我读到 当电脑的压电蜂鸣器以一定频率振动时 声音可以驱赶蚊子 真的吗 如何以编程方式访问 PC 蜂鸣器 而不是扬声器 最好使用 C 我不知道有没有蚊子 但我的头疼得要命 啊啊 using System Runtime I
  • 在 .NET Core 上通过 MEF 将参数传递给插件构造函数?

    我花了几个小时试图弄清楚如何通过 MEF System Composition 将参数传递给插件构造函数 但一切都无济于事 不用说 相关文档很少 查看源代码也没有帮助 这曾经非常容易做到 使用 CompositionHost Compose
  • 使用 openssl 库获取 x509 证书哈希

    我目前正在开发一个应用程序 它使用 openssl 库 libcrypto 来生成证书 现在我必须获取现有证书的哈希值 当我使用终端时 我可以使用以下命令生成哈希值 openssl x509 hash in cert pem noout 输
  • BlueZ D-Bus C,应用 BLE

    我正在尝试编写一个应用程序来搜索附近的蓝牙设备并与它们通信 我的应用程序将用 C 语言编写 并打算在 Linux 下工作 是否有通过 C 中的 D Bus 使用 BlueZ 的教程或示例 此应用程序的目的是从 BLE 中的文件发送数据 你能
  • Anaconda (Python) - Windows 10 上的 Cmder 集成

    我在 Windows 10 64 位上通过 Anaconda 让 Cmder 使用 Python 时遇到了一些麻烦 我让 Anaconda 工作得很好 测试过用 matplotlib 绘制一些东西 它与 Anaconda Prompt 一起
  • 以编程方式连接和断开 USB,“无需拔出和重新插入”

    我需要以编程方式连接和断开 USB 也就是说 我已经插入了USB设备 我需要使用 C NET 应用程序传输文件 该应用程序将监视特定文件夹并将文件从该文件夹传输到 USB 驱动器 我需要在文件传输后断开 USB 设备的连接 并在需要时连接
  • { Qt5.0.2/QML/QtQuick2.0/C++ } 运行没有错误的示例项目? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的设置是Qt5 0 2 MinGW 32位 我在寻找 Qt5 0 2 QML QtQuick2 0 C 代码项目示例 不是Qt Qu
  • C++ 从文件中读取字符串

    我试图将字符串直接存储到一个文件中 以便稍后在 C 中读取 基本上 对于整个范围 我试图将带有字符串变量的对象数组存储在文件中 并且这些字符串变量将通过类似 object 的内容读取 0 字符串 然而 每次我尝试读取字符串变量时 系统都会给
  • 绑定未正确更新用户控件属性 MVVM

    编辑 删除旧代码 我将它放在 MainWindow xaml 上
  • 警告从 lambda 返回捕获的引用

    我尝试使用 lambda 有条件地将引用绑定到两个变量之一 int foo bar int choice gt int if true some condition return foo else return bar 这会在 clang
  • 将整个单词与特殊字符匹配的正则表达式不起作用? [复制]

    这个问题在这里已经有答案了 我正在经历这个问题C Regex Match 整个单词 https stackoverflow com q 1209049 443568 它说要匹配整个单词使用 b模式 b 这对于匹配没有任何特殊字符的整个单词效
  • wpf中的图像问题(图像不显示)

    我不明白为什么我无法在 WPF 中显示图像 也许我不小心修改了我的资源文件夹 这就是我没有显示的原因 所以我创建了一个新的 wpf 应用程序 我有这个 当我运行该程序时 我的图片显示为 为什么当我尝试在程序中执行相同的操作时 图像没有显示
  • 如何获取打印机设备上下文?

    我在 Windows 上尝试使用以下命令打印增强型图元文件 EMF 播放增强元文件 http msdn microsoft com en us library dd162800 28VS 85 29 aspx 我当前正在使用屏幕上窗口的设备
  • 文件按文件名模式存在

    我在用 File Exists filepath 我想做的是将其替换为模式 因为文件名的第一部分发生了变化 例如 该文件可以是 01 peach xml 02 peach xml 03 peach xml 如何根据某种搜索模式检查文件是否存

随机推荐

  • JGoodies 绑定教程代码发生了什么?

    我想学习如何使用 JGoodies 绑定 因为 beans 绑定似乎已死在水中 它的 fork 也是如此 JGoosides 绑定文档引用了教程源代码 但此代码在最新 2 5 发行版中不可用 查看以前的发行版本后 似乎教程代码已在 2 0
  • R Shiny:本地运行应用程序与部署应用程序时导出的 PNG 分辨率不同

    我想在部署的 Shiny 应用程序中创建具有手动指定分辨率的 PNG 图像 此 PNG 图像应保存在我的 Dropbox 中 由于某种原因 我的 Shiny 应用程序的部署版本没有采用res内的论证png功能考虑在内 考虑以下示例 Load
  • 如何获得high_resolution_clock的精度?

    C 11 定义high resolution clock它有成员类型period and rep 但我不知道如何才能得到精确那个时钟的 或者 如果我可能无法达到精确度 我是否可以至少以纳秒为单位得到一个计数最小可表示持续时间刻度之间 可能使
  • 用作异步任务时出现后台服务错误

    我在 Xamarin Android 中有一个后台服务 但问题是我无法将其用作Async方法 它给出一个错误 返回类型必须是 StartCommandResult 以匹配重写成员 Service OnStartCommand Intent
  • XSLT 具有重叠元素?

    所以这篇文章的标题可能有点误导 但这是我能想到的最好的标题 我正在开发一个使用 TEI 进行文本编码的项目 我当前工作的要求之一是编写 XSL 转换以将 XML 编码的文本呈现为 HTML 大多数情况下 没有问题 不过 我对这个问题有点困惑
  • 选择器不区分大小写?

    我正在尝试使用 jQuery 进行 XML 处理 我使用 jQuery 遇到的问题之一是它在处理标签和属性时不区分大小写 例如 考虑以下代码 div div
  • 将术语转换为原子并在 YAP prolog 中保留变量名称

    有没有办法配置 YAP 和 或 SWI prolog 以便它们在任何调用中保留变量名称term to atom 2 例如 当我执行此操作时 term to atom member X 1 2 A 我得到这个答案 A member 13140
  • 如何确定 HTML5 拖放文件上传 API 是否存在(如 FF3.6 中的 API)

    我正在编写一个应用程序 该应用程序应该支持文件的 HTML5 拖 放 API 非常类似于所描述的here https developer mozilla org en Using files from web applications Se
  • dplyr 过滤器不适用于润滑时间格式?

    当试图回答时这个问题 https stackoverflow com questions 46360218 delete all times less than a specified value 我遇到了使用问题filter from d
  • 在后台执行命令

    我正在实现一个迷你 shell 它将模拟真正的 bash shell 我在后台执行命令 例如ls 我的第一个方法如下 不起作用 char execArgs ls NULL execvp ls execArgs 然后我尝试了另一种方法 修改父
  • 如何将多个参数传递到 JavaScript 回调函数中?

    JavaScript 代码 function doSomething v1 v2 blah function SomeClass callbackFunction callbackFuncParameters Array this call
  • Jython 2.5.1:从 Java 调用 __main__ - 如何传入命令行参数?

    我在 Java 中使用 Jython 所以我有一个类似于下面的Java设置 String scriptname com blah myscript py PythonInterpreter interpreter new PythonInt
  • 从元组列表中提取不同的值

    如何从以下元组列表中提取不同值的列表 tuple test 123 test 465 test 8910 test2 123 我想得到一个像这样的列表 different values test test2 现在我想通过这个 键 访问所有值
  • 在运行时填充多维向量

    显然这不起作用 所以代码是错误的 但我该如何修复它呢 据我所知 这整件事可能是错误的 哈哈 但我正在尝试创建一个在运行时创建自身的多维向量 我收到错误 vector subscript out of range include
  • jersey ws 2.0 @suspended AsyncResponse,它有什么作用?

    我正在分析一些 jersey 2 0 代码 我对以下方法如何工作有疑问 Stateless Path mycoolstuff public class MyEjbResource GET Asynchronous does this mea
  • 单例继承

    如何从单例类继承到需要相同功能的其他类 这样的事情有意义吗 乔恩 斯基特写过这个 http codeblog jonskeet uk 2006 01 19 singleton inheritance 一会儿回来 是可以实现的some尽管使用
  • QAbstractItemModel 线程安全

    我的实施QAbstractItemModel正在监听一些事件 并在单独的线程中处理更新 更新的处理可能会导致模型中的布局和 或数据更改 数据本身的存储方式是boost mutex 受到保护 每次通话QAbstractItemModel的接口
  • 如何让输入无线电元素在反应 [material-ui] 中水平对齐?

    在 Material ui 中 无线电组始终垂直列出 有没有办法让它们水平对齐 例如所有单选按钮都在一根水平线上 只需使用row财产 https material ui com api form group props
  • WCF 数据契约与类序列化

    我知道如果我们使用数据契约 我们可以对类有更多的控制 但是 请考虑以下两种情况 DataContract public class Customer DataMember public string CustomerName get set
  • 对目录使用 OpenFileDialog,而不是 FolderBrowserDialog

    我想在我的应用程序中拥有一个文件夹浏览器 但是I don t想要使用FolderBrowserDialog 有几个原因 比如使用起来很痛苦 我想使用标准的 OpenFileDialog 但针对目录进行了修改 举个例子 Torrent htt