Java复制多级文件夹
package com.czie.iot1913.lps.IO.BufferStream.Better;
import java.io.*;
/**
* FileName: CopyFolderDemo
* Author: lps
* Date: 2022/3/27 13:55
* Sign:刘品水 Q:1944900433
*/
public class CopyFolderDemo {
public static void main(String[] args) throws IOException{
//创建数据源对象file对象 选择路径
File srcFile = new File("E:\\itcast");
//创建目的地对象file对象 选择路径
File destFile = new File("F:\\");
//调用方法
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();
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();
}
}