复制多级文件夹

package it_05;

import java.io.*;

public class Demo8 {
    public static void main(String[] args) throws Exception {
        File srcFolder =new File("D:\\game");
        File destFolder = new File(System.getProperty("user.dir"));
        copyForder(srcFolder,destFolder);
    }

    //复制文件夹
    private static void copyForder(File srcFolder, File destFolder) throws Exception {
        if(srcFolder.isDirectory()){
            String srcFolderName = srcFolder.getName();
            File newFolder =new File(destFolder,srcFolderName); // Test:\\game
            if(!newFolder.exists()){
                newFolder.mkdir();
            }
            File[] listFile = srcFolder.listFiles();
            for (File srcFile : listFile) {
                    copyForder(srcFile,newFolder);
            }
        } else{
            File newFile =new File(destFolder,srcFolder.getName());
            copyFile(srcFolder,newFile);
        }
    }

    //字节缓冲流复制文件
    private static void copyFile(File srcFile, File destFile) throws Exception {
        BufferedInputStream bis =new BufferedInputStream(new FileInputStream(srcFile));
        BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(destFile));
        byte[] bys =new byte[2048];
        int len;
        while((len= bis.read(bys))!=-1){
            bos.write(bys,0,len);
        }
        bis.close();
        bos.close();
    }
}
posted @ 2025-04-22 21:26  lfqyj  阅读(4)  评论(0)    收藏  举报