在android的SD卡上复制.db文件
当我的手机处于根目录时,此代码不会复制SD卡上的.db文件在android的SD卡上复制.db文件,android,Android,当我的手机处于根目录时,此代码不会复制SD卡上的.db文件 try { String comando = "cp -r /data/data/com.whatsapp/databases/msgstore.db /storage/sdcard0/tmp"; Process suProcess = Runtime.getRuntime().exec("su"); System.out.println(">>&
try {
String comando = "cp -r /data/data/com.whatsapp/databases/msgstore.db /storage/sdcard0/tmp";
Process suProcess = Runtime.getRuntime().exec("su");
System.out.println(">>>>"
+ Environment.getExternalStorageDirectory());
DataOutputStream os = new DataOutputStream(
suProcess.getOutputStream());
os.writeBytes(comando + "\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
try {
int suProcessRetval = suProcess.waitFor();
if (255 != suProcessRetval) {
//
System.out.println(">>>>> done >>>>");
} else {
//
System.out.println(">>>>> not done >>>>");
}
} catch (Exception ex) {
Log.e("ERROR-->", ex.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
将数据库从/data/data文件夹复制到SD卡:
}检查我已解决此问题CurrentDB.exists返回false。如何在android中获得访问/data/data/com.whatsapp/databases/msgstore.db文件的权限
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//com.example.usarmy//databases//usarmy_db.sqlite";
String backupDBPath = "backdatabase.sqlite";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
} catch (Exception e) {
System.out.println("error in data base copy:"+e);