views:

198

answers:

2

I've actually got an Windows/Java Question. I've got a plugged-in device which I want to access via Java. Normally you can access an e.g. USB-Stick via the Drive letter... but this tablet is displayed by Windows as a "Portable Device"... which means, that the Path is something like "Computer\Archos 5S" and there is no Drive letter.

I want to access a file on this device via Java, but I am not able to figure out the correct path to it. There is a similar question out there, but without a productive answer. Or is there another way to access this device via Java?

+2  A: 

Like *nix systems, all devices (including drives) have paths that are part of a common root, this is normally hidden from users because they use the drive letters which are aliases to these fundamental paths, but you can also use full device paths by prefixing the path with "\\.\"

For instance, on my machine D: translates as "\Device\HarddiskVolume1" and can be accessed by passing "\\.\HarddiskVolume1" to CreateFile.

So the path to your device is probably "\\.\Archos 5s".

John Knoeller
thanks... this seems to be the right way although my problem isn't solved up to now. I am not able to access any drive or the "Archos 5S" via the "\\.\ - Paramter. But i found this link: http://docs.plt-scheme.org/reference/windowspaths.htmlThen i tried to access a drive via "\\?\C:" and this works... but it doesn't work for "\\?\Archos 5S".do you have any idea why?thanks in advanceripei
Ripei
Try using `GetLogicalDriveStrings` and `QueryDosDevice` maybe the your device already has an alias even if it isn't a drive letter.
John Knoeller
see this simple C program for an example of enumerating all devices.http://pastebin.com/Y3pGu5hS
John Knoeller
thank you very much. Actually I am not able to find an equivalent Java-methode... cause I've to use Java. There is only "File.listRoots()" which returns all available Drive-letters.
Ripei
A: 

Actually I've not solved this problem... I am still not able to access such a device via java.

At the moment I am trying to access a windows ShellFolder in Java. A Shellfolder like: "Shell:::{35786D3C-B075-49b9-88DD-029876E11C01}"

Is this possible with Java? Recently I uncovered the sun.awt class "ShellFolder"... is this the wanted feature?

thanks for your help Ripei

Ripei