package cn.itcast_03;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class 复制多级文件夹 {
public static void main(String[] args) throws IOException {
File srcFile = new File("E:\\develop\\dome");
File desFile = new File ("E:\\");
copyFolder(srcFile,desFile);
}
private static void copyFolder(File srcFile, File desFile) throws IOException {
if(srcFile.isDirectory()) {
File newFOlider = new File(desFile,srcFile.getName());
newFOlider.mkdir();
File[] fileArray = srcFile.listFiles();
for(File file: fileArray) {
copyFolder(file,newFOlider);
}
}else {
File newFile = new File(desFile,srcFile.getName());
copy(srcFile,newFile);
}
}
private static void copy(File srcFile, File newFile) throws IOException {
BufferedInputStream bi = new BufferedInputStream(
new FileInputStream(srcFile));
BufferedOutputStream bo = new BufferedOutputStream(
new FileOutputStream(newFile));
byte[] by = new byte[1024];
int len = 0;
while((len = bi.read(by)) != -1) {
bo.write(by,0,len);
}
bo.close();
}
}