我在plik
文件夹中有一个名为assets
的文件。我的sqlhelper有一个名为databaseExist()
的方法:
public boolean databaseExist()
{
System.out.println(DB_PATH + DB_NAME);
File dbFile = new File(DB_PATH + DB_NAME);
return dbFile.exists();
}
我的包名是:
package pl.mobiledietplanner;
路径和名称设置为:
private static String DB_PATH = "/data/data/pl.mobiledietplanner/databases/";
private static String DB_NAME = "plik";
在活动中我调用了这个方法:
MyDBHelper helper = new MyDBHelper(this);
System.out.println(helper.databaseExist());
结果是:
/data/data/pl.mobiledietplanner/databases/plik
false
我按照blog所述完成了所有事情 谁能告诉我我做错了什么?
编辑:
我也按照here开了File Explorer
并添加了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
。但data
文件夹为空。
答案 0 :(得分:0)
assegs文件夹中的文件不在您的DB_PATH中,您可以这样做:
AssetManager am = null;
·am = getAssets();
·InputStream is = am.open("filename");
然后判断输入流是否为空
注意:我的英语不太好,请不要介意
答案 1 :(得分:0)
为什么不按照您所指的博客上的checkDatabase()进行操作?
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;
}