Java io流—拷贝目录
代码:
package demo01;
import java.io.File;
public class CopyAll {
public static void main(String[] args) {
//拷贝源
File srcFile = new File("E:\\学习\\a");
//拷贝目标
File destFile = new File("C:\\Users\\22721\\Desktop");
//调用copyDri方法
copyDri(srcFile,destFile);
}
/**
* 拷贝目录
* @param srcFile 拷贝源
* @param destFile 拷贝目标
*/
private static void copyDri(File srcFile, File destFile) {
if (srcFile.isFile()){
//src.File
//srcFile如果是一个文件,结束递归
return;
}
//获取源下面的子目录(拿到当前文件夹srcFile下的子文件)
File[] files = srcFile.listFiles();
//代码测试(写一点测试一点)
//System.out.println(files.length);
for (File file:files) {
//获取所有文件的绝对路径(包括目录和文件)
//System.out.println(file.getAbsolutePath());
//这个file可能是文件或者目录
//
if (file.isDirectory()){
//System.out.println(file.getAbsolutePath());
String srcDri = file.getAbsolutePath();
//获取原目标路径,去掉前两位(E:\\学习\\a)---->(\\学习\a)
//System.out.println(srcDri.substring(2));
String destDri = destFile.getAbsolutePath() + srcDri.substring(2);
File newFile = new File(destDri);
//如果newFile不存在,则新建
if (!newFile.exists()){
newFile.mkdirs();
}
//测试输出文件路径
//System.out.println(destDri);
}
copyDri(file,destFile);
}
}
}
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ws0pnw7-1632818957514)(https://i.loli.net/2021/09/28/xoK4LNzp9tIMnPf.png)]
拷贝目标,即桌面上出现了: