尝试将我的应用程序数据库导出到SD卡但它仍然失败。
以下行FileChannel src = new FileInputStream(currentDB).getChannel();
public void exportDB() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//" + "com.rcd.simpleregister"
+ "//databases//" + "accounts.db";
String backupDBPath = "/sdcard/";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(mContext, "Backup Successful!",
Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Toast.makeText(mContext, "Backup Failed!", Toast.LENGTH_SHORT)
.show();
}
}
有谁知道可能导致这种情况的原因?
答案 0 :(得分:0)
如果目标文件尚未存在,请尝试创建。
if (!backupDB.exists())
backupDB.createNewFile();
您的目录路径也存在问题。它可能不仅仅是/sdcard/
。
最后,如果您使用的是三星设备,则不会大声使用没有root
权限的非三星应用程序写入外部SD卡和其他外部存储媒体。