2012-07-25 78 views
2

我想檢查數據庫是否存在,並且我從互聯網上找到了一些代碼。Android如何檢查數據庫是否存在

 private boolean checkDataBase(){ 

     SQLiteDatabase checkDB = null; 

     try{ 
      String myPath = DB_PATH + DB_NAME; 
      checkDB = SQLiteDatabase.openDatabase(myPath, null,SQLiteDatabase.OPEN_READONLY); 

     }catch(SQLiteException e){ 

      //database does't exist yet. 

     } 

     if(checkDB != null){ 

      checkDB.close(); 

     } 

     return checkDB != null ? true : false; 
    } 

,但我得到一個error..cannot打開文件 爲什麼它不能工作?

: sqlite returned: error code = 14, msg = cannot open file at line 27703 of [8609a15dfa], db=/data/data/com.testing.abcde/databases/scj 
: sqlite returned: error code = 14, msg = os_unix.c: open() at line 27703 - "" errno=2 path=/data/data/com.testing.abcde/databases/scj, db=/data/data/com.testing.abcde/databases/scj 
: sqlite3_open_v2("/data/data/com.testing.abcde/databases/scj", &handle, 1, NULL) failed 
: Failed to open the database. closing it. 
: android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file 
: at android.database.sqlite.SQLiteDatabase.dbopen(Native Method) 
: at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1013) 
: at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986) 
: at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:962) 
: at com.lkland.softkeyboard.easytype.SQLite.checkDataBase(SQLite.java:80) 
: at com.lkland.softkeyboard.easytype.SQLite.createDataBase(SQLite.java:55) 
+0

你應該接受關於previos問題的一些答案,以獲得更多新的答案。 – nkr 2012-07-25 19:41:04

+0

[查詢是否存在Android數據庫!](http://stackoverflow.com/questions/3386667/query-if-android-database-exists) – rds 2015-05-09 10:55:15

回答

3

我用這個代碼,它似乎運作良好:

// Where DB_PATH is /data/data/com.testing.abcde/databases/scj 
// and DB_NAME is name.db 
public boolean checkDBExists() { 
    File dbFile = new File(DB_PATH + DB_NAME); 
    return dbFile.exists(); 
} 

您需要import java.io.File;或者提供完整的參考文件類。

+0

哦,我的上帝,它完美的工作,謝謝 – 2012-07-26 07:55:17

相關問題