import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFolderDemo {
public static void main(String[] args) throws IOException {
//复制单级目录
//封装源文件夹
File srcFloder = new File("D:\\dudu");
//封装目标文件夹
File aimFloder = new File("E:\\dudu");
//如果目标文件夹不存在,创建出来
if (!aimFloder.exists()) {
aimFloder.mkdirs();
}
//复制操作
copyFolder(srcFloder, aimFloder);
}
private static void copyFolder(File srcFloder, File aimFloder) throws IOException {
//复制操作
//1.先获取目标文件夹下的所有文件和文件夹
File[] files = srcFloder.listFiles();
//2.遍历每个文件进行复制
for (File f : files) {
if (f.isFile()) {
//复制每一个文件
copyFiles(f, aimFloder);
} else
//封装源文件夹,封装目标文件夹,递归调用
File yuanFloder = f.getAbsoluteFile();
File mubiaoFloder = new File(aimFloder, f.getName());
//若不存在创建目标文件夹
if (!mubiaoFloder.exists()) {
mubiaoFloder.mkdirs();
}
//递归调用
copyFolder(yuanFloder,mubiaoFloder);
}
}
}
//复制文件
private static void copyFiles(File f, File aimFloder) throws IOException {
//封装源文件
FileInputStream in = new FileInputStream(f);
//封住目标文件
FileOutputStream out = new FileOutputStream(new File(aimFloder, f.getName()));
int len = 0;
byte[] bytes = new byte[1024 * 8];
while ((len = in.read(bytes)) != -1) {
out.write(bytes, 0, len);
out.flush();
}
in.close();
out.close();
}
}
Java_IO流之复制含有子文件夹的
最新推荐文章于 2021-02-26 16:22:08 发布