Java复制多级目录

复制代码
package demo17;

import java.io.*;

public class Demo01CopyFolders {
    public static void main(String[] args) throws IOException {
//        创建数据源file对象,路径是e:\\mn
        File srcFile = new File("E:\\mn");
//        创建目的地file对象,路径是f:\\
        File destFile = new File("F:\\");

//写方法实现文件夹的复制,参数为数据源File对象和目的地File对象
        copyFolder(srcFile, destFile);
    }




//复制文件夹
    private static void copyFolder(File srcFile, File destFile) throws IOException{
        if (srcFile.isDirectory()) {
//            在目的地下创建和数据源File名称一样的目录
            String srcFileName = srcFile.getName();
            File newFolder = new File(destFile, srcFileName);
            if (!newFolder.exists()) {
                newFolder.mkdir();
            }
//            获取数据源File下所有文件或者目录的File数组
            File[] fileArray = srcFile.listFiles();
//遍历该File数组,得到每一个File对象
            for (File file : fileArray) {
                copyFolder(file,newFolder);
            }
        }else {
//            说明是文件,直接复制,用字节流
            File newFile = new File(destFile, srcFile.getName());
            copyFile(srcFile,newFile);
        }
    }



//字节缓冲流复制文件
    private static void copyFile(File srcFile, File destFile) throws IOException{
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
        byte[] bys = new byte[1024];
        int len;
        while ((len = bis.read(bys)) != -1) {
            bos.write(bys,0,len);
        }
        bis.close();
        bos.close();
    }
}
复制代码

 

posted @   GSG000  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示