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

C# 在可移动设备/可移动存储上使用FolderBrowserDialog,c#,.net,path,folderbrowserdialog,C#,.net,Path,Folderbrowserdialog,我正在开发一个简单的复制工具,从数码相机上复制文件。我已经写了文件拷贝代码,我已经把所有的东西都很好地连接起来了 我遇到的问题似乎是FolderBrowser对话框。在Vista中(我还没有检查XP),我可以浏览到相机上的目录。但是,FolderBrowser对话框不允许我在相机上选择目录。“确定”按钮变灰 查看相机上文件的路径,如下所示: Computer\[Camera Name]\Removable storage\AnotherDirectory\ 由于这不是一个有效的路径(C:\wh

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

我遇到的问题似乎是FolderBrowser对话框。在Vista中(我还没有检查XP),我可以浏览到相机上的目录。但是,FolderBrowser对话框不允许我在相机上选择目录。“确定”按钮变灰

查看相机上文件的路径,如下所示:

Computer\[Camera Name]\Removable storage\AnotherDirectory\
由于这不是一个有效的路径(C:\whatever的intead),我猜FolderBrowserDialog不喜欢这样

使用有效的路径名,它可以正常工作,但不能在相机外工作

有人有什么建议来回避这个问题吗

更新

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

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

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

有没有办法将摄像头路径映射到驱动器号?(我在从命令提示符中考虑“subst”或“net use”之类的内容。)也许这会使FolderBrowser对话框按预期运行?

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

您应该能够获取文件夹的PIDL(它应该是函数的标志之一),并使用COM外壳接口实现副本


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


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

如何获取实际路径?SHBrowseForFolder返回有效的PIDL,但SHGetPathFromIDList无法返回路径。它适用于非MTP路径,但不适用于MTP路径。