c# - 在可移动设备/可移动存储上使用 FolderBrowserDialog

标签 c# .net path folderbrowserdialog

我正在开发一个简单的复制工具来从数码相机中复制文件。我已经编写了文件复制代码,我已经很好地连接了所有内容。

我遇到的问题似乎与 FolderBrowserDialog 有关。在 Vista 中(我还没有检查过 XP),我可以浏览到相机上的目录。但是 FolderBrowserDialog 不允许我选择相机上的目录。 OK 按钮变灰。

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

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

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

它在有效的路径名下工作正常,但在相机之外...

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

更新

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

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

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

最佳答案

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

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

SHBrowseForFolder

Using PIDL to enumerate a folder

关于c# - 在可移动设备/可移动存储上使用 FolderBrowserDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/541247/

相关文章:

c# - 使 WCF 代理对服务关闭使用react的问题

c# - 在插值字符串中使用 if 条件

c# - 是否有任何类型的通用字典试图获取不存在的键将返回 null?

Django,无法在子文件夹中创建应用程序

c# - DriveInfo 在当前上下文中不存在?

C# Azure 和 IOT 对类型 'stream' 的引用声称在 'System.RunTime' 中定义,但找不到

c# - 基于流行度的缓存解决方案

sql - VB.Net - SQLDataReader 中的错误和 "Conversion from type ' DBNULL' 键入 'Date' 无效

windows - 使用批处理文件向系统变量路径添加一行

linux - Homebrew 软件错误。路径中带有斜线的目录。已经编辑了我的 $PATH 但我仍然找不到/