[Js-Java SE]文件/文件夹复制(递归)
代码如下:
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]文件/文件夹复制(递归)相关推荐
- java+js实现展示本地文件夹下的所有图片demo
java+js实现展示本地文件夹下的所有图片demo 最近项目遇到需要实现前端通过一个按钮点击事件,弹窗浏览本地文件夹下的所有图片: 思路: - 获取到所需展示图片的本地文件夹内所有图片的文件绝对 ...
- Java File类应用:递归遍历文件夹和递归删除文件
要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...
- java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络]
java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/46364875 转载于:htt ...
- java命令 jar文件夹_java中jar命令打包一个文件夹下的所有文件
(1)首先,必须保证java的所有路径都设置好,在dos提示符下输入jar -help 出现C:\Documents and Settings\dly>jar -help 非法选项:h 用法:j ...
- java 多种类型文件复制_java多种文件复制方式以及效率比较
1.背景 java复制文件的方式其实有很多种,可以分为 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,BufferedO ...
- 怎么复制远程服务器上的文件夹,Linux系统复制文件/文件夹到远程服务器
从一个服务器复制文件到另一个服务器,或者从本地到远程复制是 Linux 管理员的日常任务之一. 我觉得不会有人不同意,因为无论在哪里这都是你的日常操作之一.有很多办法都能处理这个任务,我们试着加以概括 ...
- java 删除指定文件夹和下面所有文件_java——File IO流
1.File(掌握) (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件 (2)构造方法 A:File file = new File("e:demoa ...
- nodejs linux复制文本,Nodejs 复制文件/文件夹的方法
1.使用fs复制文件 使用fs对象的readFileSync,writeFileSync方法进行读写操作复制 cp.js function copyIt(from, to) { fs.writeFil ...
- java 删除指定文件夹和下面所有文件_JAVA语言基础
一.计算机的基本概念 什么是计算机? 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行.自动高速处理海量数据的现代化智能电子设备.由硬件和软件组成.没有安装过任何软件的计算 ...
- 基于layui.upload.js 拖拽文件/文件夹上传下载
layui.upload.js 拖拽文件/文件夹上传下载 前言 js代码 页面使用(我这里用的是uploader.jsp) CSS文件 上传效果 总结 前言 项目需求完成文件上传,可以拖拽上传文件/文 ...
最新文章
- html模板存储在mysql_Python爬虫架构5模板 | 你真的会写爬虫吗?
- 介绍Azure服务平台,.NET Services及其中的访问控制服务(Access Control)
- Lua语法入门HelloWorld
- Android 之View绘图原理总结
- TCP建立连接与断开连接的过程
- unity 日志级别_【Unity】通用的Debugger日志模块
- 易到追债贾跃亭 乐视回应:对方无耻甩锅
- php小论坛开发总结,PHP开发 小型论坛教程之添加论坛-2
- 关乎Python lambda你也看得懂
- linux hdfs授予文件夹权限,修修改hdfs上的文件所属用户、所属组等读写执行控制权限...
- mysql新建数据库并执行sql文件
- 学习云计算为什么先学Linux?
- ThinkPHP6.0学习入门:环境搭建与安装教程
- reporting php,PHP报错函数error_reporting()怎么用?
- MVVM?继续搞一波
- 用SPSS对参数进行正态性检验
- linux已经读写次数ssd剩余,固态硬盘ssd写入量剩余读写次数怎样查
- ZJM 与纸条(KMP算法)
- 一秒钟实现Andriod系统文件访问
- 最优投资组合构建问题,Python实现
热门文章
- LINUX用C建立多级目录(测试通过)
- LINUX使用sed完成文本文件的修改
- 建议电脑电源标准逐步去掉-12V、3.3V
- X86栈切换,任务切换
- centos mysql 安装_Linux下MYSQL5.7详细安装步骤:
- redmi airdots左右耳不串联怎么办_小米Redmi AirDots蓝牙耳机只能单边连接不能串联的解决办法...
- JAVA开发做不出来_为什么一道很简单的编程题做不出来?
- ajax 怎么添加,添加功能(Ajax版)
- C# 读写txt文件 写txt(IO) TXT追加
- linux 查看pgsql端口,如何通过Linux脚本检查是否已安装PostgreSQL?