2011-09-11 79 views
0

我需要在運行時創建數據庫目錄(/ data/data/pkg-name/databases /)中的數據庫文件。我的問題是:這可能嗎?我可以在數據庫目錄中創建文件嗎?

如果我嘗試創建它:在錯誤

File unzipped = new File(context.getDatabasePath(filename + ".db").getPath()); 
unzipped.createNewFile(); 

應用雲:......沒有這樣的文件或目錄...

有些想法我怎麼能做到這一點?

我從互聯網上下載我需要創建的數據庫,這是問題所在。

回答

0

一些想法我可以做到這一點?

創建目錄。除非您嘗試使用SQLiteDatabaseSQLiteOpenHelper創建第一個數據庫,否則Android不會自動創建該目錄。

0

你必須檢查:

  1. 目錄存在,如果不創建它。
  2. 文件存在,如果沒有創建它。

但是,如果你再實際上是試圖建立一個SQLite數據庫有這樣做

private static class OpenHelper extends SQLiteOpenHelper { 
     OpenHelper(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("CREATE TABLE " + TABLE_NAME 
       + "(_id INTEGER PRIMARY KEY, name TEXT)"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

     while (oldVersion != newVersion) { 
      Log.w("Example", 
        "Upgrading database, this will drop tables and recreate."); 
      if (oldVersion == 4) { 
       db.execSQL("ALTER TABLE " + TABLE_NAME+ " ADD COLUMN type INTEGER"); 

      } 
      else if(oldVersion>=5) 
      { 
       db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
       onCreate(db); 
      } 
      oldVersion++; 
     } 
    } 
} 
更好的方法
相關問題