1. 程式人生 > >FileOperator 文件(夾)操作類

FileOperator 文件(夾)操作類

所有 for rect 目錄 targe trac tst apk leo

public class FileOperator {

    /**
     * 復制文件目錄
     * @param srcDir 要復制的源目錄 eg:/mnt/sdcard/DB
     * @param destDir 復制到的目標目錄 eg:/mnt/sdcard/db/
     * @return
     */
    public static boolean copyDir(String srcDir, String destDir){
        File sourceDir = new File(srcDir);
        //判斷文件目錄是否存在
        if
(!sourceDir.exists()){ return false; } //判斷是否是目錄 if (sourceDir.isDirectory()) { File[] fileList = sourceDir.listFiles(); File targetDir = new File(destDir); //創建目標目錄 if(!targetDir.exists()){ targetDir.mkdirs(); }
//遍歷要復制該目錄下的全部文件 for(int i= 0;i<fileList.length;i++){ if(fileList[i].isDirectory()){//如果如果是子目錄進行遞歸 copyDir(fileList[i].getPath()+ "/", destDir + fileList[i].getName() + "/"); }else{//如果是文件則進行文件拷貝 copyFile(fileList[i].getPath(), destDir +fileList[i].getName()); } }
return true; }else { copyFileToDir(srcDir,destDir); return true; } } /** * 復制文件(非目錄) * @param srcFile 要復制的源文件 * @param destFile 復制到的目標文件 * @return */ private static boolean copyFile(String srcFile, String destFile){ try{ InputStream streamFrom = new FileInputStream(srcFile); OutputStream streamTo = new FileOutputStream(destFile); byte buffer[]=new byte[1024]; int len; while ((len= streamFrom.read(buffer)) > 0){ streamTo.write(buffer, 0, len); } streamFrom.close(); streamTo.close(); return true; } catch(Exception ex){ return false; } } /** * 把文件拷貝到某一目錄下 /data/test03apk * @param srcFile * @param destDir * @return */ public static String copyFileToDir(String srcFile, String destDir) { File fileDir = new File(destDir); if (!fileDir.exists()) { fileDir.mkdir(); } String destFile = destDir +"/" + new File(srcFile).getName(); try{ InputStream streamFrom = new FileInputStream(srcFile); OutputStream streamTo = new FileOutputStream(destFile); byte buffer[]=new byte[1024]; int len; while ((len= streamFrom.read(buffer)) > 0){ streamTo.write(buffer, 0, len); } streamFrom.close(); streamTo.close(); Log.i("copyFileToDir已備份此apk==","srcFile=="+srcFile+"destFile=="+destFile); return destFile; } catch(Exception ex){ Log.i("備份apk失敗==",destFile); ex.printStackTrace(); return null; } } /** * 把文件拷貝到某一目錄下 /data/test03apk * @param srcFile * @param destDir * @return */ public static String copyFileToDir2(String srcFile, String destDir, String destName) { File fileDir = new File(destDir); if (!fileDir.exists()) { fileDir.mkdir(); } String destFile = destDir +"/" + destName+".apk"; try{ InputStream streamFrom = new FileInputStream(srcFile); OutputStream streamTo = new FileOutputStream(destFile); byte buffer[]=new byte[1024]; int len; while ((len= streamFrom.read(buffer)) > 0){ streamTo.write(buffer, 0, len); } streamFrom.close(); streamTo.close(); Log.i("copyFileToDir2已備份此apk==","srcFile=="+srcFile+"\ndestFile=="+destFile); return destFile; } catch(Exception ex){ Log.i("備份apk失敗==",destFile); ex.printStackTrace(); return null; } } /** * 移動文件目錄到某一路徑下 * @param srcFile * @param destDir * @return */ public static boolean moveFile(String srcFile, String destDir) { //復制後刪除原目錄 if (copyDir(srcFile, destDir)) { deleteFile(new File(srcFile)); return true; } return false; } /** * 刪除文件(包括目錄) * @param delFile */ public static void deleteFile(File delFile) { //如果是目錄遞歸刪除 if (delFile.isDirectory()) { File[] files = delFile.listFiles(); for (File file : files) { deleteFile(file); } } else { delFile.delete(); Log.i("已刪除==",delFile.getName()); } //如果不執行下面這句,目錄下所有文件都刪除了,但是還剩下子目錄空文件夾 delFile.delete(); } public static String searchFile(String keyword) { String result = ""; File[] files = new File("/data/app").listFiles(); for (File file : files) { if (file.getName().indexOf(keyword) >= 0) { result += file.getPath() + "\n"; } } if (result.equals("")){ result = "找不到文件!!"; } return result; } }

FileOperator 文件(夾)操作類