在android的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(">>&

当我的手机处于根目录时,此代码不会复制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(">>>>"
                    + 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);