package demo.io;
import java.io.*;
class 递归拷贝文件 {
public static void main(String[] args) {
File sourceDir = new File("I:\\Test\\2");//源
File destDir = new File("I:\\Test\\22");//新目录
listCopyAll(sourceDir, destDir);//递归拷贝文件
}
//递归拷贝文件 sourceDir 源目录,destDir 新目录
private static void listCopyAll(File sourceDir, File destDir) {
destDir.mkdirs();//创建新目录
File[] files = sourceDir.listFiles();//获取源目录文件对象列表
for (File file : files) {//file源目录的最近一级子目录及文件
if (file.isDirectory()) {//如果是目录就继续遍历
//根据file传入new dir2子目录地址进行创建 listCopyAll中的两个参数同一水平
listCopyAll(file, new File(destDir.getAbsolutePath(), file.getName()));//在自身目录上衔接目录
} else {
//拷贝文件 在自身目录上衔接文件
copyFile(file, new File(destDir.getAbsolutePath(), file.getName()));
}
}
}
//copy文件
private static void copyFile(File file, File newFile) {
//读取源文件信息
BufferedInputStream bufi = null;
//写入新文件信息
BufferedOutputStream bufo = null;
try {
bufi = new BufferedInputStream(new FileInputStream(file));
bufo = new BufferedOutputStream(new FileOutputStream(newFile));//文件自动创建
int len = 0;
byte[] buf = new byte[1024];
while ((len = bufi.read(buf)) != -1) {
bufo.write(buf, 0, len);
bufo.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bufi != null)
bufi.close();
if (bufo != null)
bufo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
递归拷贝文件
最新推荐文章于 2023-03-22 20:19:17 发布
569

被折叠的 条评论
为什么被折叠?



