如何快速检查Android中是否存在数据库?
(不是表格 - 整个数据库)
答案 0 :(得分:5)
打开您的数据库并捕获SQLitException,如果数据库不存在,将抛出该SQLitException。请注意,您不应该调用openOrCreateDatabase()
方法。有关详细信息,请参阅此帖Query if Android database exists!
答案 1 :(得分:2)
我检查数据库是否存在的方法是打开文件句柄并查看文件是否存在。根据我使用“openOrCreateDatabase()”函数的经验,如果db不存在,则不会抛出错误。看看名称“打开 OR 创建数据库”。这意味着如果没有数据库可以打开它,那么只需要创建一个新数据库,所以不管现在有没有数据库之前都有。我认为你唯一一次得到错误就是它无法做到。从那个家伙说我不相信的是他们想要测试的东西,我想他希望他的程序知道数据库是否已经存在,而不是自动创建一个空白的,如果没有。所以由于所有数据库都存储为文件,因此该open database命令中的第一个参数是文件名。所以我认为最好的选择是检查db文件是否存在如下:
File dbtest = new File("/data/data/yourpackagename/databases/dbfilename");
//If you have Context, you could get the Database file using the following syntax
//File dbtest = getApplicationContext().getDatabasePath("dbfilename.db");
if(dbtest.exists())
{
// what to do if it does exist
}
else
{
// what to do if it doesn't exist
}