【问题标题】:Android - Can not find the file although it exists in the data folder?Android - 虽然文件存在于数据文件夹中但找不到文件?
【发布时间】:2011-11-15 18:36:23
【问题描述】:

我正在尝试使用模拟器将 SQLite 数据库从数据文件夹复制到 SDCard,我正在使用下面的代码,我找到了 here

try {
    File sd = Environment.getExternalStorageDirectory();
    File data = Environment.getDataDirectory();

    if (sd.canWrite()) {
        String currentDBPath = "\\data\\PackageName\\databases\\myDB.db";
        String backupDBPath = "myDB.db";
        File currentDB = new File(data, currentDBPath);
        File backupDB = new File(sd, backupDBPath);

        if (currentDB.exists()) 
        {
           // code to copy from currentDB  to backupDB 
        }
    }
} catch (Exception e) {
}

下面的写权限也被添加到清单文件中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

问题

问题是“currentDB.exists()”返回 FALSE

“currentDB.getAbsolutePath()”返回路径为“data\data\PackageName\databases\myDB.db”

这是数据库的正确位置,因为我可以使用 Eclipse >> DDMS 透视图 >> 文件资源管理器找到它

谁能帮我找出为什么“currentDB.exists()”返回 FALSE 的问题?

感谢您宝贵的时间和帮助。

【问题讨论】:

  • 你肯定用你真正的应用包名替换PackageName,不是吗?
  • @Arhimed:是的,我已经用真实的应用包名替换了它
  • 您确定currentDB.exists() 正在返回 false 并且没有某种其他逻辑错误吗?我的应用程序中有完全相同的代码...

标签: android file copy file-not-found


【解决方案1】:

好吧,伙计们,我刚刚删除了“.db”扩展名,它现在可以工作了! 请参阅下面的更新代码:

try 
 {
    File sd = Environment.getExternalStorageDirectory();
    File data = Environment.getDataDirectory();

    if (sd.canWrite()) {
        String currentDBPath = "\\data\\PackageName\\databases\\myDB";
        String backupDBPath = "myDB";
        File currentDB = new File(data, currentDBPath);
        File backupDB = new File(sd, backupDBPath);

        if (currentDB.exists()) 
        {
           // code to copy from currentDB  to backupDB 
        }
    }
} catch (Exception e) {
}

myDB.db 被替换为“myDB”。

【讨论】:

  • 这是因为您没有使用 .db 扩展名命名您的数据库。您应该(以供将来参考)在某处使用带有您的 DB 名称的静态常量,并使用 Main.DATABASE_NAME 引用它。然后你需要String currentDBPath = "\\data\\PackageName\\databases\\" + Main.DATABASE_NAME。这样可以避免类似的问题。
猜你喜欢
  • 1970-01-01
  • 2013-09-21
  • 1970-01-01
  • 2023-04-09
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多