• FileOperator 文件(夹)操作类


    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+"
    destFile=="+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() + "
    ";
                }
            }
            if (result.equals("")){
                result = "找不到文件!!";
            }
            return result;
    
        }
    }
  • 相关阅读:
    Cocos-js(html5) 学习
    Cocos-html5 初识
    quick cocos2d-x Xcode下省去clean,让修改的脚本生效
    iOS 淘宝买 开发者证书 进行真机调试
    iOS NSString的学习熟悉
    quick-cocos2d-x 加载进度条的学习
    HTML 学习之HTML语言嵌入JavaScript
    CCArray的使用(Quick-cocos2d-x)
    quick-cocos2d-x 精灵使用、动作等等的学习
    Spring(二) Mini版Spring的实现
  • 原文地址:https://www.cnblogs.com/duanwandao/p/9625429.html
Copyright © 2020-2023  润新知