我正在编写一个需要写入文件的 MIDlet。我正在使用 JSR-75 中的 FileConnection 来完成此操作。
目的是让这个 MIDlet 在尽可能多的设备上运行(理想情况下,所有支持 JSR-75 的 MIDP 2.0 设备)。
在几个模拟器和一个 HTC Touch Pro2 上,我可以完美地使用以下代码来获取文件系统的根:
Enumeration drives = FileSystemRegistry.listRoots();
String root = (String) drives.nextElement();
String path = "file:///" + root;
但是,在诺基亚 S60 第 5 版仿真器上,尝试打开到此路径的 FileConnection 会引发 java.lang.SecurityException。显然 S60 设备不允许连接到文件系统的根目录。我意识到我可以使用 System.getProperty("fileconn.dir.photos") 之类的东西,但并非所有设备都支持。
所以,我的实际问题是:获得创建 FileConnection 的路径的最佳方法是什么,以实现最大的可移植性?
谢谢。
编辑:我想我可以遍历枚举中的所有根,并检查一个可写的根,但这并不是最优的,原因有两个。首先,不一定有任何可写的根。其次,这可能是手机内存或存储卡,因此存储方式在设备之间不会保持一致,这很丑陋。