public class CopyDir {

     public static void main(String[] args) {
copyDir(new File("d:\\a"), new File("d:\\b"));
} //file1为被复制目录, file2为目标目录
public static void copyDir(File file1 ,File file2) {
//目标目录不存在则创建
if(!file2.exists()) {
file2.mkdir();
}
//将源目录所有对象取出存入File[]数组中
File[] fList =file1.listFiles();
//遍历源目录
for (File f : fList) {
//当子对象为目录时在目标目录中创建此目录
if(f.isDirectory()) {
File file =new File(file2,f.getName());
file.mkdir();
//调用自己
copyDir(f, file);
}else if(f.isFile()) {
//当子对象为文件时用字节流读取并写入目标目录中(复制)
BufferedInputStream bis = null ;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(f));
bos = new BufferedOutputStream(new FileOutputStream(new File(file2,f.getName())));
int len = 0;
byte[] bytes = new byte[1024];
while((len = bis.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
} catch (IOException e) {
throw new RuntimeException("操作失败!");
}finally {
try {
bis.close();
bos.close();
} catch (IOException e) {
throw new RuntimeException("关闭失败!");
}
}
}
}
}
}

最新文章

  1. iOS之ProtocolBuffer搭建和示例demo
  2. canvas应用-思维导图
  3. HDU 1171 Big Event in HDU 多重背包二进制优化
  4. VS中查看/修改Dialog控件TAB顺序的方法
  5. shell中exec解析(转)
  6. Python闭包详解
  7. iOS 的 APP 如何适应 iPhone 5s/6/6Plus 三种屏幕的尺寸?
  8. scss 学习笔记
  9. vue组件大集合 component
  10. Java编程思想总结笔记The first chapter
  11. quartz定时任务cron表达式
  12. 又是一个Notepad++的问题
  13. 将html前端代码提取公因数(5)
  14. 补充:CSS选择器样式的规范!
  15. python 使用read_csv读取 CSV 文件时报错
  16. android listview优化:滑动时颜色错乱问题
  17. HDU 3787 A+B 模拟题
  18. ZOOKEEPER解惑[转]
  19. oracle(四) 常用语句
  20. 【清华集训 2017】小Y的地铁 [模拟退火]

热门文章

  1. Python软件定时器APScheduler使用【软件定时器,非操作系统定时器,软件可控的定时器】【用途:定时同步数据库和缓存等】【刘新宇】
  2. MySQL之外键、主键、自增
  3. Certified Scrum Master CSM 中文资料大全
  4. mac使用brew安装mysql5.7
  5. mysql查询添加
  6. mysql错误代码对照表较完整
  7. 抖音人脸识别Autojs脚本
  8. scala教程之:可见性规则
  9. Uva 1754 Posterize
  10. Android Resourse