1. 程式人生 > >android 獲取指定路徑下所有檔案,將檔案從一個目錄copy到另一個目錄,執行linux命令

android 獲取指定路徑下所有檔案,將檔案從一個目錄copy到另一個目錄,執行linux命令

    	/**  
         * 複製整個資料夾內容  ,可以從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();   
           }   
       }