File path for J2ME FileConnection?

Posted by Kilnr on Stack Overflow See other posts from Stack Overflow or by Kilnr
Published on 2010-03-22T10:32:49Z Indexed on 2010/03/22 19:01 UTC
Read the original article Hit count: 840

Filed under:
|
|
|

Hi,

I'm writing a MIDlet which needs to write file. I'm using FileConnection from JSR-75 to accomplish this.

The intention is to have this MIDlet runnning on as much devices as possible (all MIDP 2.0 devices with JSR-75 support, ideally).

On several emulators and an HTC Touch Pro2, I can perfectly use the following code to get the root of the filesystem:

Enumeration drives = FileSystemRegistry.listRoots();
String root = (String) drives.nextElement();
String path = "file:///" + root;

However, on a Nokia S60 5th edition emulator, trying to open a FileConnection to this path throws a java.lang.SecurityException. Apparently S60 devices do not allow connections to the root of the filesystem. I realise I can use something like System.getProperty("fileconn.dir.photos"), but that isn't supported on all devices either.

So, my actual question: what is the best approach to get a path to create a FileConnection with, that allows for maximum portability?

Thanks.

Edit: I suppose I could iterate over all the roots in the Enumeration, and check for a writable one, but that's hardly optimal for two reasons. First, there aren't necessarily any writable roots. Second, this could be the phone memory or a memory card, so the storage method wouldn't be consistent across devices, which is rather ugly.

© Stack Overflow or respective owner

Related posts about java-me

Related posts about file-io