复制多级目录, 将某一个文件夹下的所有内容复制到另一个文件夹下

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;


/*
 * 1.复制多级目录, 将某一个文件夹下的所有内容复制到另一个文件夹下
 *  分析:1.获取该File对象下的所有文件或者文件夹File对象
 *              遍历得到每一个File对象
 *            2.判断该File是文件夹还是文件
 *        (1)是文件夹,目的地目录下创建该文件夹
 *                (2)是文件,复制(字节流)
 * 
 * 复制文件夹:D:/myCollection--->D:/copy
 * 
 */
public class Work1 {
public static void main(String[] args) throws IOException {
//指定源数据
File srcFile = new File("D:/myCollection");
//指定目的地
File destFile = new File("D:/copy");
//调用方法
copyFolder(srcFile,destFile);

}


public static void copyFolder(File srcFile,File destFile ) 
throws FileNotFoundException, IOException {
//列出全部文件
File[] list = srcFile.listFiles();
for(File files:list){
//获取文件名字
String str = files.getName();
 
//判断是目录还是文件
if(files.isDirectory()){
//指定创建路径
File f = new File("D:/copy/"+str);
//生成文件夹
f.mkdir();
}else{
/*
  * 读写文件
  */
FileInputStream is = new FileInputStream(str);
FileOutputStream os = new FileOutputStream("D:/copy/"+str);
 
//高效流
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(os);
 
int len;
byte[] bytes = new byte[1024];
while((len=bis.read(bytes)) != -1){
bos.write(bytes);
}
//释放资源
bis.close();
bos.close();
 
}
}
}

}

猜你喜欢

转载自blog.csdn.net/qq_39659876/article/details/80055744