我正在写一个MIDlet这需要写文件。我使用从JSR-75的FileConnection做到这一点。

其目的是有这个MIDlet捉迷藏上尽可能多的设备尽可能(所有MIDP 2.0装置JSR-75支持,理想情况下)。

在几个仿真器和一个HTC Touch Pro2的,我可以完全使用以下代码来获取文件系统的根:

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

然而,在诺基亚S60第五版模拟器,试图打开一个到的FileConnection这条道路将抛出java.lang.SecurityException。显然,S60设备不允许在文件系统的根连接。我知道我可以使用类似System.getProperty(“fileconn.dir.photos”),但也无法支持所有设备上。

所以,我实际的问题:什么是去创建一个一个的FileConnection路径最好的方法,它允许最大的可移植性

感谢。

修改的: 我想我可以遍历枚举所有的根源,并检查是否有可写的一个,但几乎没有最优的原因有两个。首先,有没有必要写任何根基。第二,这可能是手机存储器或存储卡,所以存储方法不会在不同装置一致,这是比较难看。

有帮助吗?

解决方案

您都应该以开放的根只读连接,以找出文件夹所包含的内容。

一般情况下,打开一个文件夹READ_WRITE连接时抛出一个SecurityException,试图以找到一个可写的一个开到通过子文件夹浏览只读连接。

特别是在Symbian(和其他平台先进的,足以提供安全的数据笼子MIDlet的),你可以使用System.getProperty("fileconn.dir.private");找到一个可写的区域。

其他提示

我会告诉你我们做什么。我们有一个测试的应用程序,只需找出文件系统的根和SD卡根(如果适用)。我们将此作为一个JAD参数。该代码从JAD文件读取它。因为你不需要重新编译为不同的设备这个作品出来的罐子非常好,只是改变了JAD参数不同的文件系统的根的手机。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top