可能重复:
将我的数据库移动到 sd 卡不起作用
我在我的 sdcard 的根目录上得到一个名为 test4 的文件,但是当我使用 sqlite 浏览器将它移动到我的计算机时它不起作用。有任何想法吗?
File data = Environment.getDataDirectory();
File sd = Environment.getExternalStorageDirectory();
if (sd.canWrite()) {
String currentDBPath = "/data/com.test.this/databases/this_db";
String backupDBPath = "/test4";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
if (currentDB.exists()) {
FileChannel src;
try {
src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB)
.getChannel();
try {
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Windows 说该文件是“20.0 KB”。来自我的模拟器的数据库文件中有大量条目,但文件只有“9.00 KB”。我创建了多个文件“test1”、“test2”、“test3”、“test4”,但它们的大小完全相同。我的数据库不是“可复制”的吗?我不知道怎么知道。Astro 文件管理器具有文件详细信息。当我看到有关此文件的详细信息时。它给了我大小并且权限是“-rw”,不知道这是否有帮助。