【问题标题】:Using FolderBrowserDialog on a Removable Device / Removable storage在可移动设备/可移动存储上使用 FolderBrowserDialog
【发布时间】:2010-10-07 04:12:48
【问题描述】:

我正在开发一种简单的复制工具,用于从数码相机上复制文件。我已经编写了文件复制代码,我已经把所有东西都很好地连接起来了。

我遇到的问题似乎与 FolderBrowserDialog 有关。在 Vista 中(我还没有检查过 XP),我可以浏览到相机上的目录。但是,FolderBrowserDialog 不会让我选择相机上的目录。 “确定”按钮显示为灰色。

查看相机上文件的路径,它看起来像这样:

Computer\[Camera Name]\Removable storage\AnotherDirectory\

由于这不是有效路径(而不是 C:\whatever),我猜 FolderBrowserDialog 不喜欢这样。

通过有效的路径名可以正常工作,但不能离开相机...

有没有人有任何建议来解决这个问题?

更新

为了确认oefe的问题,路径实际上显示为:

Computer\[Camera Name]\Removable storage\AnotherDirectory\

ChulioMartinez 关于使用 SHBrowseForFolder 的建议确实有效,我将标记为正确答案。感谢您的帮助 Chulio。

【问题讨论】:

  • 如何获得实际路径? SHBrowseForFolder 向我返回一个有效的 PIDL,但 SHGetPathFromIDList 未能返回我的路径。它适用于非 MTP 路径,但不适用于 MTP 路径。

标签: c# .net path folderbrowserdialog


【解决方案1】:

你从哪里得到路径?从资源管理器中的地址栏?这不会显示文件系统路径,而是它的“用户友好”表示。

要获取路径,请右键单击地址栏,然后选择“将地址复制为文本”或“编辑地址”。

【讨论】:

    【解决方案2】:

    我的猜测是该位置没有文件系统表示(路径),例如 c:...\我的相机。

    您应该能够获取文件夹的 PIDL,(它应该是函数的标志之一),并使用 COM shell 接口实现复制。

    SHBrowseForFolder

    Using PIDL to enumerate a folder

    【讨论】:

      【解决方案3】:

      有没有办法将相机路径映射到驱动器号? (我正在考虑命令提示符下的“subst”或“net use”之类的东西。)也许这会欺骗 FolderBrowserDialog 使其按预期运行?

      【讨论】:

        猜你喜欢
        • 2016-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-19
        • 1970-01-01
        相关资源
        最近更新 更多