• Java 新建、复制、删除、移动文件(夹)操作类


        package test;  
         
        import java.io.File;  
        import java.io.FileInputStream;  
        import java.io.FileOutputStream;  
        import java.io.FileWriter;  
        import java.io.InputStream;  
        import java.io.PrintWriter;  
         
        public class FileOperate {  
            public FileOperate() {  
            }  
         
            /**  
             * 新建目录  
             *   
             * @param folderPath  
             *            String 如 c:/fqf  
             * @return boolean  
             */ 
            public void newFolder(String folderPath) {  
                try {  
                    String filePath = folderPath;  
                    filePath = filePath.toString();  
                    File myFilePath = new File(filePath);  
                    if (!myFilePath.exists()) {  
                        myFilePath.mkdir();  
                    }  
                } catch (Exception e) {  
                    System.out.println("新建目录操作出错 ");  
                    e.printStackTrace();  
                }  
            }  
         
            /**  
             * 新建文件  
             *   
             * @param filePathAndName  
             *            String 文件路径及名称 如c:/fqf.txt  
             * @param fileContent  
             *            String 文件内容  
             * @return boolean  
             */ 
            public void newFile(String filePathAndName, String fileContent) {  
         
                try {  
                    String filePath = filePathAndName;  
                    filePath = filePath.toString();  
                    File myFilePath = new File(filePath);  
                    if (!myFilePath.exists()) {  
                        myFilePath.createNewFile();  
                    }  
                    FileWriter resultFile = new FileWriter(myFilePath);  
                    PrintWriter myFile = new PrintWriter(resultFile);  
                    String strContent = fileContent;  
                    myFile.println(strContent);  
                    resultFile.close();  
         
                } catch (Exception e) {  
                    System.out.println("新建文件操作出错 ");  
                    e.printStackTrace();  
                }  
         
            }  
         
            /**  
             * 删除文件  
             *   
             * @param filePathAndName  
             *            String 文件路径及名称 如c:/fqf.txt  
             * @param fileContent  
             *            String  
             * @return boolean  
             */ 
            public void delFile(String filePathAndName) {  
                try {  
                    String filePath = filePathAndName;  
                    filePath = filePath.toString();  
                    java.io.File myDelFile = new java.io.File(filePath);  
                    myDelFile.delete();  
         
                } catch (Exception e) {  
                    System.out.println("删除文件操作出错 ");  
                    e.printStackTrace();  
         
                }  
         
            }  
         
            /**  
             * 删除文件夹  
             *   
             * @param filePathAndName  
             *            String 文件夹路径及名称 如c:/fqf  
             * @param fileContent  
             *            String  
             * @return boolean  
             */ 
            public void delFolder(String folderPath) {  
                try {  
                    delAllFile(folderPath); // 删除完里面所有内容  
                    String filePath = folderPath;  
                    filePath = filePath.toString();  
                    java.io.File myFilePath = new java.io.File(filePath);  
                    myFilePath.delete(); // 删除空文件夹  
         
                } catch (Exception e) {  
                    System.out.println("删除文件夹操作出错 ");  
                    e.printStackTrace();  
         
                }  
         
            }  
         
            /**  
             * 删除文件夹里面的所有文件  
             *   
             * @param path  
             *            String 文件夹路径 如 c:/fqf  
             */ 
            public void delAllFile(String path) {  
                File file = new File(path);  
                if (!file.exists()) {  
                    return;  
                }  
                if (!file.isDirectory()) {  
                    return;  
                }  
                String[] tempList = file.list();  
                File temp = null;  
                for (int i = 0; i < tempList.length; i++) {  
                    if (path.endsWith(File.separator)) {  
                        temp = new File(path + tempList[i]);  
                    } else {  
                        temp = new File(path + File.separator + tempList[i]);  
                    }  
                    if (temp.isFile()) {  
                        temp.delete();  
                    }  
                    if (temp.isDirectory()) {  
                        delAllFile(path + "/ " + tempList[i]);// 先删除文件夹里面的文件  
                        delFolder(path + "/ " + tempList[i]);// 再删除空文件夹  
                    }  
                }  
            }  
         
            /**  
             * 复制单个文件  
             *   
             * @param oldPath  
             *            String 原文件路径 如:c:/fqf.txt  
             * @param newPath  
             *            String 复制后路径 如:f:/fqf.txt  
             * @return boolean  
             */ 
            public void copyFile(String oldPath, String newPath) {  
                try {  
                    int bytesum = 0;  
                    int byteread = 0;  
                    File oldfile = new File(oldPath);  
                    if (oldfile.exists()) { // 文件存在时  
                        InputStream inStream = new FileInputStream(oldPath); // 读入原文件  
                        FileOutputStream fs = new FileOutputStream(newPath);  
                        byte[] buffer = new byte[1444];  
                        while ((byteread = inStream.read(buffer)) != -1) {  
                            bytesum += byteread; // 字节数 文件大小  
                            System.out.println(bytesum);  
                            fs.write(buffer, 0, byteread);  
                        }  
                        inStream.close();  
                    }  
                } catch (Exception e) {  
                    System.out.println("复制单个文件操作出错 ");  
                    e.printStackTrace();  
         
                }  
         
            }  
         
            /**  
             * 复制整个文件夹内容  
             *   
             * @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;  
                    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]);  
                        }  
         
                        if (temp.isFile()) {  
                            FileInputStream input = new FileInputStream(temp);  
                            FileOutputStream output = new FileOutputStream(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]);  
                        }  
                    }  
                } catch (Exception e) {  
                    System.out.println("复制整个文件夹内容操作出错 ");  
                    e.printStackTrace();  
         
                }  
         
            }  
         
            /**  
             * 移动文件到指定目录  
             *   
             * @param oldPath  
             *            String 如:c:/fqf.txt  
             * @param newPath  
             *            String 如:d:/fqf.txt  
             */ 
            public void moveFile(String oldPath, String newPath) {  
                copyFile(oldPath, newPath);  
                delFile(oldPath);  
         
            }  
         
            /**  
             * 移动文件夹到指定目录  
             *   
             * @param oldPath  
             *            String 如:c:/fqf  
             * @param newPath  
             *            String 如:d:/fqf  
             */ 
            public void moveFolder(String oldPath, String newPath) {  
                copyFolder(oldPath, newPath);  
                delFolder(oldPath);  
            }  
        } 
  • 相关阅读:
    dedecms如何调用指定栏目下的相关文章
    dedecms二次开发标签总结
    如何在网页中显示数学公式与化学公式的方法
    CSS的选择器
    CSS属性之Overflow之作用
    FTP服务器架构简单方法
    dedecms性能选项与其它选项
    dedecms会员设置、互动设置
    dedecms图片设置属性
    dedecms核心设置
  • 原文地址:https://www.cnblogs.com/jianming-chan/p/3264279.html
Copyright © 2020-2023  润新知