递归拷贝文件夹
`
public class Test2 {
public static void main(String[] args) {
copy(new File("e:/youdao"),new File("e:/test"));
}
private static void copy(File src, File dest) {
//1、判断源目录是否存在
if (src!=null&&src.exists()&&src.isDirectory()){
//2、目标目录创建:e:/test/youdao
File destOne=new File(dest,src.getName());
destOne.mkdirs();//创建多级目录
//提取原目录下的全部的一级文件对象
File[] files=src.listFiles();
//先判断是否存在一级文件对象
if (files!=null&&files.length>0){
//便利一级文件对象
for (File file : files) {
//判断是文件夹还是文件
if (file.isFile()){
copyFile(file,new File(destOne,file.getName()));
}else {
//遍历到文件夹就递归复制
copy(file,destOne);
}
}
}
}
}
public static void copyFile(File srcFile,File destFile){
try (
//创建一个字节输入流管道与原文件接通
InputStream is=new FileInputStream(srcFile);
//创建一个字节输出流管道与目标文件接通
OutputStream os=new FileOutputStream(destFile);
){
//字节数组来转移数据
byte[] bytes=new byte[1024];
int l;//记录每次读取的字节数
while ((l=is.read(bytes))!=-1){
os.write(bytes,0,l);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
`
星星上的张优秀