代码如下:

 1 package com.neu.core;
 2
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8
 9 public class RecursiveCopy {
10
11     public static void main(String[] args) {
12         String source = "C:\\Users\\imsha\\Desktop\\软件测试-wcn\\";
13         String target = "E:\\test\\";
14         int retVal = recursiveCopy(source, target);
15         if (retVal != -1) {
16             System.out.println("共复制" + retVal + "个文件");
17         } else {
18             System.out.println("复制失败!源路径不存在或目标路径已存在!");
19         }
20     }
21
22     public static int recursiveCopy(String source, String target) {
23         File sou = new File(source);
24         File tar = new File(target);
25         File temp = null;
26         // 记录改变的文件数
27         int retVal = 0;
28         // 源文件不存在或者目标路径已存在则退出,返回-1
29         if (!sou.exists() || tar.exists()) {
30             return -1;
31         }
32         // 获取源文件下文件列表
33         String[] fs = sou.list();
34         // 创建目标目录
35         tar.mkdirs();
36         for (int i = 0; i < fs.length; i++) {
37             // 构建源目录文件名
38             if (source.endsWith(File.separator)) {
39                 temp = new File(source + fs[i]);
40             } else {
41                 temp = new File(source + File.separator + fs[i]);
42             }
43             // 文件复制
44             if (temp.isFile()) {
45                 FileInputStream input = null;
46                 FileOutputStream output = null;
47                 try {
48                     String path = null;
49                     input = new FileInputStream(temp);
50                     if (target.endsWith(File.separator)) {
51                         path = target + (temp.getName()).toString();
52                     } else {
53                         path = target + File.separator + (temp.getName()).toString();
54                     }
55                     output = new FileOutputStream(path);
56                     byte[] b = new byte[1024 * 5];
57                     int len;
58                     while ((len = input.read(b)) != -1) {
59                         output.write(b, 0, len);
60                     }
61                     output.flush();
62                     System.out.println("将【" + temp.getAbsolutePath() + "】复制到【" + path + "】");
63                 } catch (FileNotFoundException e) {
64                     e.printStackTrace();
65                 } catch (IOException e) {
66                     e.printStackTrace();
67                 } finally {
68                     // 关闭文件流
69                     try {
70                         output.close();
71                     } catch (IOException e) {
72                         e.printStackTrace();
73                     }
74                     try {
75                         input.close();
76                     } catch (IOException e) {
77                         e.printStackTrace();
78                     }
79                 }
80                 retVal += 1;
81             }
82             // 如果是文件夹,则递归调用
83             if (temp.isDirectory()) {
84                 retVal += recursiveCopy(
85                         source.endsWith(File.separator) ? source + fs[i] : source + File.separator + fs[i],
86                         target.endsWith(File.separator) ? target + fs[i] : target + File.separator + fs[i]);
87             }
88         }
89
90         return retVal;
91     }
92
93 }

运行结果如下:

 1 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter1 Software Testing Introduction.ppt】复制到【E:\test\Chapter1 Software Testing Introduction.ppt】
 2 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter2 Black-Box Testing.ppt】复制到【E:\test\Chapter2 Black-Box Testing.ppt】
 3 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter3 White-box Testing.ppt】复制到【E:\test\Chapter3 White-box Testing.ppt】
 4 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter4 Unit Testing.ppt】复制到【E:\test\Chapter4 Unit Testing.ppt】
 5 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter5 Integration Testing.ppt】复制到【E:\test\Chapter5 Integration Testing.ppt】
 6 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter6 System Testing.ppt】复制到【E:\test\Chapter6 System Testing.ppt】
 7 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter7 Performance Testing.ppt】复制到【E:\test\Chapter7 Performance Testing.ppt】
 8 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter8 Object-oriented Software Testing and Web system Testing.ppt】复制到【E:\test\Chapter8 Object-oriented Software Testing and Web system Testing.ppt】
 9 将【C:\Users\imsha\Desktop\软件测试-wcn\Chapter9 Software Testing Management and Automation.ppt】复制到【E:\test\Chapter9 Software Testing Management and Automation.ppt】
10 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Bubble.java】复制到【E:\test\java排序\Bubble.java】
11 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\DoubleBubbleSort.java】复制到【E:\test\java排序\DoubleBubbleSort.java】
12 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Heap.java】复制到【E:\test\java排序\Heap.java】
13 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Insertion.java】复制到【E:\test\java排序\Insertion.java】
14 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Merge.java】复制到【E:\test\java排序\Merge.java】
15 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Quick.java】复制到【E:\test\java排序\Quick.java】
16 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Radix.java】复制到【E:\test\java排序\Radix.java】
17 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Selection.java】复制到【E:\test\java排序\Selection.java】
18 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Shell.java】复制到【E:\test\java排序\Shell.java】
19 将【C:\Users\imsha\Desktop\软件测试-wcn\java排序\Sort.java】复制到【E:\test\java排序\Sort.java】
20 将【C:\Users\imsha\Desktop\软件测试-wcn\Oracle-张苏欣\01第一章 关系型数据库简介.pdf】复制到【E:\test\Oracle-张苏欣\01第一章 关系型数据库简介.pdf】
21 将【C:\Users\imsha\Desktop\软件测试-wcn\Oracle-张苏欣\02第二章 数据查询.pdf】复制到【E:\test\Oracle-张苏欣\02第二章 数据查询.pdf】
22 将【C:\Users\imsha\Desktop\软件测试-wcn\Oracle-张苏欣\03第三章 数据操纵.pdf】复制到【E:\test\Oracle-张苏欣\03第三章 数据操纵.pdf】
23 将【C:\Users\imsha\Desktop\软件测试-wcn\Oracle-张苏欣\04第四章 表和视图.pdf】复制到【E:\test\Oracle-张苏欣\04第四章 表和视图.pdf】
24 将【C:\Users\imsha\Desktop\软件测试-wcn\Oracle-张苏欣\05第五章 其他数据库对象.pdf】复制到【E:\test\Oracle-张苏欣\05第五章 其他数据库对象.pdf】
25 将【C:\Users\imsha\Desktop\软件测试-wcn\presentation.ppt】复制到【E:\test\presentation.ppt】
26 将【C:\Users\imsha\Desktop\软件测试-wcn\增补1.ppt】复制到【E:\test\增补1.ppt】
27 将【C:\Users\imsha\Desktop\软件测试-wcn\增补2.ppt】复制到【E:\test\增补2.ppt】
28 将【C:\Users\imsha\Desktop\软件测试-wcn\完整版课件.rar】复制到【E:\test\完整版课件.rar】
29 共复制28个文件

转载于:https://www.cnblogs.com/jiasq/p/8533113.html

[Js-Java SE]文件/文件夹复制(递归)相关推荐

  1. java+js实现展示本地文件夹下的所有图片demo

    java+js实现展示本地文件夹下的所有图片demo 最近项目遇到需要实现前端通过一个按钮点击事件,弹窗浏览本地文件夹下的所有图片:  思路:  - 获取到所需展示图片的本地文件夹内所有图片的文件绝对 ...

  2. Java File类应用:递归遍历文件夹和递归删除文件

    要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...

  3. java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络]

    java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/46364875 转载于:htt ...

  4. java命令 jar文件夹_java中jar命令打包一个文件夹下的所有文件

    (1)首先,必须保证java的所有路径都设置好,在dos提示符下输入jar -help 出现C:\Documents and Settings\dly>jar -help 非法选项:h 用法:j ...

  5. java 多种类型文件复制_java多种文件复制方式以及效率比较

    1.背景 java复制文件的方式其实有很多种,可以分为 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,BufferedO ...

  6. 怎么复制远程服务器上的文件夹,Linux系统复制文件/文件夹到远程服务器

    从一个服务器复制文件到另一个服务器,或者从本地到远程复制是 Linux 管理员的日常任务之一. 我觉得不会有人不同意,因为无论在哪里这都是你的日常操作之一.有很多办法都能处理这个任务,我们试着加以概括 ...

  7. java 删除指定文件夹和下面所有文件_java——File IO流

    1.File(掌握) (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件 (2)构造方法 A:File file = new File("e:demoa ...

  8. nodejs linux复制文本,Nodejs 复制文件/文件夹的方法

    1.使用fs复制文件 使用fs对象的readFileSync,writeFileSync方法进行读写操作复制 cp.js function copyIt(from, to) { fs.writeFil ...

  9. java 删除指定文件夹和下面所有文件_JAVA语言基础

    一.计算机的基本概念 什么是计算机? 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行.自动高速处理海量数据的现代化智能电子设备.由硬件和软件组成.没有安装过任何软件的计算 ...

  10. 基于layui.upload.js 拖拽文件/文件夹上传下载

    layui.upload.js 拖拽文件/文件夹上传下载 前言 js代码 页面使用(我这里用的是uploader.jsp) CSS文件 上传效果 总结 前言 项目需求完成文件上传,可以拖拽上传文件/文 ...

最新文章

  1. html模板存储在mysql_Python爬虫架构5模板 | 你真的会写爬虫吗?
  2. 介绍Azure服务平台,.NET Services及其中的访问控制服务(Access Control)
  3. Lua语法入门HelloWorld
  4. Android 之View绘图原理总结
  5. TCP建立连接与断开连接的过程
  6. unity 日志级别_【Unity】通用的Debugger日志模块
  7. 易到追债贾跃亭 乐视回应:对方无耻甩锅
  8. php小论坛开发总结,PHP开发 小型论坛教程之添加论坛-2
  9. 关乎Python lambda你也看得懂
  10. linux hdfs授予文件夹权限,修修改hdfs上的文件所属用户、所属组等读写执行控制权限...
  11. mysql新建数据库并执行sql文件
  12. 学习云计算为什么先学Linux?
  13. ThinkPHP6.0学习入门:环境搭建与安装教程
  14. reporting php,PHP报错函数error_reporting()怎么用?
  15. MVVM?继续搞一波
  16. 用SPSS对参数进行正态性检验
  17. linux已经读写次数ssd剩余,固态硬盘ssd写入量剩余读写次数怎样查
  18. ZJM 与纸条(KMP算法)
  19. 一秒钟实现Andriod系统文件访问
  20. 最优投资组合构建问题,Python实现

热门文章

  1. LINUX用C建立多级目录(测试通过)
  2. LINUX使用sed完成文本文件的修改
  3. 建议电脑电源标准逐步去掉-12V、3.3V
  4. X86栈切换,任务切换
  5. centos mysql 安装_Linux下MYSQL5.7详细安装步骤:
  6. redmi airdots左右耳不串联怎么办_小米Redmi AirDots蓝牙耳机只能单边连接不能串联的解决办法...
  7. JAVA开发做不出来_为什么一道很简单的编程题做不出来?
  8. ajax 怎么添加,添加功能(Ajax版)
  9. C# 读写txt文件 写txt(IO) TXT追加
  10. linux 查看pgsql端口,如何通过Linux脚本检查是否已安装PostgreSQL?