[英]False returned for File exists(); when it does Android internal storage
Inside a Fragment 片段内
SQLiteDatabase savedDutiesDB = null;
public void createDatabase() {
try{
savedDutiesDB = getActivity().openOrCreateDatabase("savedDuties",Context.MODE_PRIVATE, null);
savedDutiesDB.execSQL("CREATE TABLE IF NOT EXISTS storedDuties " +
"(dutyBookName VARCHAR, dayOfTheWeek Int, pageNumber Int);");
File databaseFile = getActivity().getApplicationContext().getDatabasePath("SavedDuties.db");
Log.d("TCB","path:" + databaseFile);
// Check if the database exists
if (databaseFile.exists()) {
Log.d("TCB","database Created");
} else {
Log.d("TCB","Missing:" + databaseFile);
}
}
catch(Exception e){
Log.e("TCB", "Error: "+e);
}
}
Logs out 登出
D/TCB: path:/data/data/com.domain.appName/databases/SavedDuties.db
D / TCB:路径:/data/data/com.domain.appName/databases/SavedDuties.db
D/TCB: Missing:/data/data/com.domain.appName/databases/SavedDuties.dbD / TCB:缺少:/data/data/com.domain.appName/databases/SavedDuties.db
However the file does exist as I can see it in Android device monitor and I can write to it. 但是,该文件确实存在,因为我可以在Android设备监视器中看到它并且可以对其进行写入。
Why could this be returning false? 为什么这会返回假?
You are creating a database named "savedDuties"
. 您正在创建一个名为
"savedDuties"
的数据库。 You are trying to access the file for a database named "SavedDuties.db"
. 您正在尝试访问名为
"SavedDuties.db"
的数据库的文件。 Those are not the same. 那些不一样。
This might be due to Permissions. 这可能是由于权限所致。
This might also be an issue of a misconstructed file path, try using : databaseFile.getAbsoluteFile().exists()
instead. 这也可能是文件路径构造错误的问题,请尝试改用:
databaseFile.getAbsoluteFile().exists()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.