2

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

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 的问题吗?

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

4

1 回答 1

0

好吧,伙计们,我刚刚删除了“ .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 ”。

于 2011-11-16T05:32:29.403 回答