我需要在运行时创建数据库目录(/ data / data / pkg-name / databases /)中的数据库文件。我的问题是:有可能吗?
如果我尝试用以下方法创建它:
File unzipped = new File(context.getDatabasePath(filename + ".db").getPath());
unzipped.createNewFile();
该应用程序出错:...没有这样的文件或目录......
有些想法我怎么能这样做?
我从互联网上下载了我需要创建的数据库,这就是问题所在。
答案 0 :(得分:0)
有些想法我怎么能这样做?
创建目录。在尝试使用SQLiteDatabase
或SQLiteOpenHelper
创建第一个数据库之前,Android不会自动创建目录。
答案 1 :(得分:0)
你必须检查:
但是如果你真的想要创建一个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++;
}
}
}