import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileToFile {
public static void main(String[] args) throws Exception {
File file = new File("E:\\test3");
File file2 = new File("E:\\test_3");
int count = 0;
Copy1(file, file2, count);
}
// 复制文件夹
public static void Copy1(File file, File file2, int count) throws Exception {
if (file.isDirectory()) {
File gFile;
if (count != 0) {// 判断是否是第一个文件夹,否则会多复制一层文件夹
gFile = new File(file2, file.getName());
gFile.mkdirs();// 创建目标文件夹的根文件夹
} else {// 若不是则和源文件夹相同
gFile = file2;// 则目标文件夹的路径即为要复制的文件夹
count++;
}
// 遍历复制文件夹
File[] files = file.listFiles();// 遍历目标文件下所有文件夹
for (File tfile : files) {
Copy1(tfile, gFile, count);// 递归调用复制文件夹
}
} else {
File wFile = new File(file2, file.getName());// 若是文件,创建新的文件,调用文件复制
// wFile.createNewFile();//目标文件需要新建,可以不需要,因为是调用父类文件夹创建,里面文件会自动创建
Copy2(file, wFile);
}
}
// 复制文件
public static void Copy2(File file, File file2) throws Exception {
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(file2);
byte[] bs = new byte[1024];
int n = 0;
while ((n = fis.read(bs)) != -1) {
fos.write(bs, 0, n);
}
fos.close();
}
}
java实现复制多级文件夹
最新推荐文章于 2023-06-03 18:39:03 发布