简体   繁体   English

为文件exist()返回了False; 当它进行Android内部存储时

[英]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.db D / 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM