JDK1.7 Paths,Files类实现文件夹的复制与删除的实例
时间:2019-04-10
本文章向大家介绍JDK1.7 Paths,Files类实现文件夹的复制与删除的实例,主要包括JDK1.7 Paths,Files类实现文件夹的复制与删除的实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
实例如下所示:
public static void copyFolder(String srcFolder, String destFolder) throws IOException { long startTime = System.currentTimeMillis(); final Path srcPath = Paths.get(srcFolder); // 这里多创建一级,就解决了没有外壳的问题 final Path destPath = Paths.get(destFolder, srcPath.toFile().getName()); // 检查源文件夹是否存在 if (Files.notExists(srcPath)) { System.err.println("源文件夹不存在"); System.exit(1); } // 如果目标目录不存在,则创建 if (Files.notExists(destPath)) { Files.createDirectories(destPath); } // 这里是官方例子的开头,可能是针对大文件处理设置的参数 // Files.walkFileTree(srcPath, EnumSet.of(FileVisitOption.FOLLOW_LINKS), // Integer.MAX_VALUE, new SimpleFileVisitor<Path>() {} //简化后的开头 Files.walkFileTree(srcPath, new SimpleFileVisitor<Path>() { // 官方还调用了专门的文件夹处理,这里没使用 // public FileVisitResult preVisitDirectory(Path dir, // BasicFileAttributes attrs) throws IOException {return null;} @Override // 文件处理,将文件夹也一并处理,简洁些 public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { Path dest = destPath.resolve(srcPath.relativize(file)); // 如果说父路径不存在,则创建 if (Files.notExists(dest.getParent())) { Files.createDirectories(dest.getParent()); } Files.copy(file, dest); return FileVisitResult.CONTINUE; } }); long endTime = System.currentTimeMillis(); System.out.println("复制成功!耗时:" + (endTime - startTime) + "ms"); } // 删除文件夹 public static void deleteFolder(String Foleder) throws IOException { Path start = Paths.get(Foleder); if (Files.notExists(start)) { throw new IOException("文件夹不存在!"); } Files.walkFileTree(start, new SimpleFileVisitor<Path>() { @Override //构成了一个内部类 // 处理文件 public FileVisitResult visitFile(Path file,BasicFileAttributes attrs) throws IOException { Files.delete(file); return FileVisitResult.CONTINUE; } @Override // 再处理目录 public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException { if (e == null) { Files.delete(dir); return FileVisitResult.CONTINUE; } else { throw e; } } }); System.out.println("删除成功!"); } public static void main(String[] args) throws IOException { //copyFolder("C:\\Users\\Administrator\\Desktop\\111", "D:\\压缩\\1级\\2级");// 419ms,378ms,429ms.... deleteFolder("C:\\Users\\Administrator\\Desktop\\111");}
如有问题,还请提出,谢谢!
以上这篇JDK1.7 Paths,Files类实现文件夹的复制与删除的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- Golang写的并行排序算法
- Go中调用dll示例
- python 序列化数据:pickle与json ,dumps与loads
- golang继承,和多态
- python 利用random生成验证码与MD5码加密过程
- Java内部类的继承
- Java继承类中static成员函数的重写
- Search for a range寻找上下界-Leetcode
- Basic Calculator 基本计算器-Leetcode
- python yield函数深入浅出理解
- 十分钟搞定 Tensorflow 服务
- datapump跨平台升级迁移的总结 (r8笔记第77天)
- Java中isAssignableFrom()方法与instanceof()方法用法
- 与Ajax同样重要的jQuery(1)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- HW在即——红队活动之Lnk样本载荷篇
- 用正则表达式修改html字符串的所有div的style样式
- 深入理解 WebSecurityConfigurerAdapter【源码篇】
- 算法和数据结构: 十二 无向图相关算法基础
- 算法和数据结构: 十一 哈希表
- 【DB笔试面试849】在Oracle中,在没有配置ORACLE_HOME环境变量的情况下,如何获取ORACLE_HOME目录?
- 算法和数据结构: 九 平衡查找树之红黑树
- 算法和数据结构: 七 二叉查找树
- Python 面向对象编程(下篇)
- 算法和数据结构: 符号表及其基本实现
- 算法和数据结构:堆排序
- mysql 优化海量数据插入和查询性能
- 聊聊dubbo-go的DubboPackage
- mysql行转列,列转行
- js异步编程