复制多级文件夹

package com.io.liushuaishuai;

import java.io.*;

public class copyFolderDemo01 {
    public static void main(String[] args)throws IOException {
        //创建数据源File对象,路径是c:\\java
        File srcfile = new File("c:\\java");
        //创建目的地File对象,路径是c:\\F
        File destfile = new File("c:\\F");

        //文件夹复制
        copyFolder(srcfile, destfile);


    }

    private static void copyFolder(File srcfile, File destfile)throws IOException {
        if (srcfile.isDirectory()) {
            String srcfileName = srcfile.getName();
            File newFolder = new File(destfile, srcfileName);
            if (!newFolder.exists()) {
                newFolder.mkdir();
            }
            File[] filearray = srcfile.listFiles();
            for (File file : filearray) {
                copyFolder(file, destfile);
            }
        } else {
            copyFile(srcfile, new File(destfile, srcfile.getName()));
        }

    }

    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 @ 2019-08-29 14:41  水果、、  阅读(234)  评论(0编辑  收藏  举报