广告
返回顶部
首页 > 资讯 > 精选 >JDK1.7 Paths,Files类实现文件夹的复制与删除的实例
  • 576
分享到

JDK1.7 Paths,Files类实现文件夹的复制与删除的实例

pathsfiles类文件夹 2023-05-30 20:05:38 576人浏览 独家记忆
摘要

实例如下所示:public static void copyFolder(String srcFolder, String destFolder) throws ioException { long startTime = Syst

实例如下所示:

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");}

--结束END--

本文标题: JDK1.7 Paths,Files类实现文件夹的复制与删除的实例

本文链接: https://www.lsjlt.com/news/220900.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作