【发布时间】: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