Java复制多级文件夹

Java复制多级文件夹

整理一下思路:

  • 首先创建文件源和目标文件夹File对象
  • 调用文件夹复制方法copyFolder()
    • 编写copyFolder()方法
      • 如果文件源是文件夹则在目标文件夹的基础上创建一个新的File对象(newFile)
        • 遍历文件源获取File对象(file),调用copyFolder(file,newFile)
      • 如果是文件,则直接复制
package com.wanwan;

import java.io.*;

public class Demo05 {
    
    
    public static void main(String[] args) throws IOException {
    
    
        File f1 = new File("文件源路径");
        File f2 = new File("目标路径");
        copyFolder(f1,f2);
    }

    private static void copyFolder(File f1, File f2) throws IOException {
    
    
        if(f1.isDirectory()){
    
    
            File f3 = new File(f2,f1.getName());
            //创建目录时一定要判断该目录是否存在
            if(!f3.exists()){
    
    
                f3.mkdirs();
            }
            File[] files = f1.listFiles();
            for(File f : files){
    
    
                copyFolder(f,f3);
            }
        }
        if(f1.isFile()){
    
    
        	//复制文件时要先创建要复制的文件对象,然后再复制文件
            File f3 = new File(f2,f1.getName());
            copyFile(f1,f3);
        }
    }

    private static void copyFile(File f1, File f2) throws IOException {
    
    
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f1));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));

        byte[] bys = new byte[1024];
        int len = 0;
        while((len = bis.read(bys)) != -1){
    
    
            bos.write(bys,0,len);
        }

        bos.close();
        bis.close();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44586845/article/details/106029515
今日推荐