package com.softeem.example;
/**
* 完成一个目录拷贝(目录中还有子文件,子目录)?-递归
* @author 123
*
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileUtils {
public void fileCopy(File source,File dir) throws IOException{
File target = new File(dir,source.getName());
//输入源文件
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(source));
//输出到指定文件
BufferedOutputStream bos= new BufferedOutputStream(new FileOutputStream(target));
byte[] b = new byte[1024];
int len = 0;
while((len = bis.read(b))!=-1){
bos.write(b,0,len);
}
bos.close();
bis.close();
}
public void dirCopy(File sourceDir,File targetDir) throws IOException{
targetDir = new File(targetDir,sourceDir.getName());
if(!targetDir.exists()){
//创建目录
targetDir.mkdir();
}
//读取源目录的子文件
File[] files = sourceDir.listFiles();
if(files != null){
for(File f:files){
if(f.isFile()){
//拷贝文件
fileCopy(f,targetDir);
}else{
//递归
dirCopy(f,targetDir);
}
}
}
}
public static void main(String[] args) throws IOException {
File dir1 = new File("D:\\Game");
File dir2 = new File("D:\\SSS");
new FileUtils().dirCopy(dir1, dir2);
}
}
有子目录子文件的目录拷贝
猜你喜欢
转载自blog.csdn.net/qq_42696837/article/details/81433569
今日推荐
周排行