views:

701

answers:

3

I'm working on a simple copy tool to copy files off digital cameras. I've written the file copy code, I've got everything hooked up nicely.

The issue I have seems to be with the FolderBrowserDialog. In Vista (I haven't checked XP yet), I can browse to the directories on the camera. However the FolderBrowserDialog will not let me select a directory on the camera. The OK button is greyed out.

Looking at the path for the files on the camera it looks like this:

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

As this is not a valid path (intead of C:\whatever), I'm guessing the FolderBrowserDialog doesn't like this.

It works fine from a valid path name, but not off the camera...

Does anyone have any suggestions to get around this?

Update

To confirm oefe's question the path is actually displayed as:

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

ChulioMartinez's suggestion of using SHBrowseForFolder does work, and I will mark as the correct answer. Thanks for your help Chulio.

A: 

Is there a way to map the camera path to a drive letter? (I'm thinking something like "subst" or "net use" from a command prompt.) Maybe that would fool the FolderBrowserDialog into behaving as desired?

Pedro
+1  A: 

My guess would be that the location doesn't have a file system representation (path) such as c:...\my camera.

You should be able to get the PIDL of the folder, (it should be one the the flags for the function), and implement the copy using the COM shell interfaces.

SHBrowseForFolder

Using PIDL to enumerate a folder

ChulioMartinez
A: 

Where did you get the path from? From the address bar in Explorer? This doesn't display the file system path, but a "user friendly" representation of it.

To get the path, right-click the address bar, and choose "Copy Address as Text" or "Edit Address".

oefe