package cn.dzy.io;
import java.io.*;
public class CopyDir {
/**
* 使用java将source文件夹中所有文件拷贝到target文件夹中(注意:目录结构不能变)
* 1.遍历判断,如果是文件,就创建相同文件名,直接复制,如果不是文件,那么就创建同名文件夹,然后递归,最后返回上一级文件夹
* 2.
*/
public static void main(String[] args) {
File f = new File("G:\\workspace\\heimalearn\\IO流\\A");
File f1 = new File("G:\\workspace\\heimalearn\\Study\\B");
method(f, f1);
}
private static void method(File f, File f1) {
FileInputStream fs = null;
FileOutputStream ft = null;
File[] files = f.listFiles();
try {
for (File file : files) {
//是文件创建同名文件,直接复制
if (file.isFile()) {
f1 = new File(f1, file.getName());
f1.createNewFile();
fs = new FileInputStream(file);
ft = new FileOutputStream(f1);
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fs.read(bytes)) != -1) {
ft.write(bytes, 0, len);
}
} else {
//如果是文件夹,遍历文件夹,创建同名文件夹
f1 = new File(f1, file.getName());
f1.mkdirs();
method(file, f1);
}
f1 = f1.getParentFile();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fs != null && ft != null) {
try {
fs.close();
ft.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
IO流:copy文件夹,不改变目录结构
最新推荐文章于 2023-07-24 10:48:57 发布