import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**复制一个文件夹及里面的内容到指定目录
* @author Administrator
*
*/
public class Test14 {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
//目标文件夹对象f2,及要复制到的路径
File f2=new File("d:\\java1");
File f1=new File("f:\\2");
//传参到功能函数复制
copyFile(f2,f1);
}
public static void copyFile(File f2,File f1) throws Exception{
//如果f2是文件夹
if(f2.isDirectory()){
//f1对象文件夹不存在
if(!f1.exists()){
//生成一个文件夹
f1.mkdir();
//列出原文件夹下一层的对象
File[] fs=f2.listFiles();
//遍历对象
for(File f:fs){
//将对象的路径再封装成对象那个
File f2File=new File(f2,f.getName());
File f1File=new File(f1,f.getName());
//递归复制
copyFile(f2File,f1File);
}
}
//如果f2不是文件夹
}else{
//把文件f2复制到f1中
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(f2));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(f1));
byte[] buf=new byte[1024];
int len=0;
while((len=bis.read(buf))!=-1){
bos.write(buf, 0, len);
bos.flush();
}
bis.close();
bos.close();
}
}
} |
|