android 獲取指定路徑下所有檔案,將檔案從一個目錄copy到另一個目錄,執行linux命令
阿新 • • 發佈:2019-01-03
/** * 複製整個資料夾內容 ,可以從data/data/包名下 拷貝到 data/data/包名下。也可以copy到 /sdcard 下 * @param oldPath String 原檔案路徑 如:c:/fqf * @param newPath String 複製後路徑 如:f:/fqf/ff * @return boolean */ public void copyFolder(String oldPath, String newPath) { try { (new File(newPath)).mkdirs(); //如果資料夾不存在 則建立新資料夾 File a=new File(oldPath); String[] file=a.list(); File temp=null; Log.d(TAG,"test len:"+file.length); for (int i = 0; i < file.length; i++) { if(oldPath.endsWith(File.separator)){ temp=new File(oldPath+file[i]); } else{ temp=new File(oldPath+File.separator+file[i]); } Log.d(TAG,"newPath:"+i+"file:"+file[i]); if(temp.isFile()&&(temp.toString()).endsWith("apk")){ FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(new File(newPath + "/" +(temp.getName()).toString())); byte[] b = new byte[1024 * 5]; int len; while ( (len = input.read(b)) != -1) { output.write(b, 0, len); } output.flush(); output.close(); input.close(); } // if(temp.isDirectory()){//如果是子資料夾 // copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); // } } Runtime rt = Runtime.getRuntime(); rt.exec("rm -r /data/data/com.egreat.onekeyapk/cache/appDir/"); rt.exec("sync /r"); } catch (Exception e) { Log.d(TAG,"copy fail:"); e.printStackTrace(); } }