时间:2021-05-20
实例如下所示:
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类实现文件夹的复制与删除的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了jdk1.7配置教程,供大家参考,具体内容如下第一步:下载jdk1.7 下载地址:链接密码:wrmf第二步:安装jdk1.7 将下载
PS:本文使用jdk1.7解析1.Object类的equals方法复制代码代码如下:/***Indicateswhethersomeotherobjectis"
一、结论先行ArrayList在JDK1.8与JDK1.7底层区别JDK1.7:ArrayList像饿汉式,直接创建一个初始容量为10的数组,当数组的长度不能容
本文实例讲述了php文件夹的创建与删除方法。分享给大家供大家参考。具体如下:1、创建文件夹复制代码代码如下:2、创建文件夹,递归式创建复制代码代码如下:3、删除
本文实例讲述了PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法。分享给大家供大家参考,具体如下:前面一篇PHP递归实现文件夹的复制、删除、查看大小操作分