【发布时间】:2011-06-14 21:39:41
【问题描述】:
我正在制作一个在后台运行的应用程序,并在设备启动时启动。 我已阅读文档,并从 RIM 获得 SQLiteDemo 文件,我正在使用它们尝试在模拟器中的 SD 卡上创建数据库。
不幸的是,我收到了这个错误:
DatabasePathException:Invalid path name. Path does not contains a proper root list. See FileSystemRegistry class for details.
这是我的代码:
public static Database storeDB;
public static final String DATABASE_NAME = "testDB";
private String DATABASE_LOCATION = "file:///SDCard/Databases/MyDBFolder/";
public static URI dbURI;
dbURI = URI.create(DATABASE_LOCATION+DATABASE_NAME);
storeDB = DatabaseFactory.openOrCreate(dbURI);
出于本文的目的,我为URI.create 和DatabaseFactory.openOrCreate 提取了try/catch。
那么,谁能告诉我为什么我不能在我的模拟器上创建数据库?
如果我加载它并进入媒体,我可以手动创建一个文件夹。 SD 卡指向我硬盘上的一个文件夹,如果我在其中创建一个文件夹,它也会显示在模拟器上,所以我可以创建文件夹,而不是通过编程方式。
另外,我已经从开发者文档中尝试过:
// Determine if an SDCard is present
boolean sdCardPresent = false;
String root = null;
Enumeration enum = FileSystemRegistry.listRoots();
while (enum.hasMoreElements())
{
root = (String)enum.nextElement();
System.err.println("root="+root);
if(root.equalsIgnoreCase("sdcard/"))
{
sdCardPresent = true;
}
}
但它只接收store/ 而从不接收sdcard/。
任何人都可以帮忙吗?
谢谢。
【问题讨论】:
-
碰巧在模拟器中运行我的程序时找不到SD卡,但是如果你在不关闭模拟器的情况下再次运行它,它会找到它并运行正常。跨度>
标签: sqlite blackberry