使用Files.walk删除文件

news/发布时间2024/5/16 23:33:52

摘要:使用Files.walk删除指定文件名的文件。

  使用Files.walk工具,递归判断指定目录中的常规文件路径名是否符合约定名称,如果满足条件就删除。

public class DelFile {// 文件名在此集合就删除private static Set<String> givenFileNames = new HashSet<>();public static void main(String[] args) {givenFileNames.add("更多课程联系微信:xxx.txt" );givenFileNames.add("更多课程联系QQ:Wiener.txt" );givenFileNames.add("微信:Wiener.png" );givenFileNames.add("QQ:xxx.jpg" );// 获取要批量重命名的文件目录String path = "/Users/楼兰胡杨";
//        传false时只打印满足条件的文件,传true时删除delByWalk(path, Boolean.FALSE);
//        deleteFileByGivenName(path);}public static void delByWalk(String givenDirName, Boolean isDeleted) {try (Stream<Path> givenPaths = Files.walk(Paths.get(givenDirName))) {// 筛选出常规文件List<String> result = givenPaths.filter(Files::isRegularFile)//把path映射为路径名.map(path -> path.toString())// 筛选出符合条件的文件.filter(fileName -> ifDeleted(new File(fileName), isDeleted)).collect(Collectors.toList());} catch (Exception e) {System.out.println("--------");}}/*** 如果isDeleted=false时,可以正确打印文件名称。令isDeleted=true时,删除文件* Java 8之前的方法* @param file      文件* @param isDeleted true 可以删除* */public static void deleteGivenFiles(File file, Boolean isDeleted) {if (file.isDirectory()) {// 如果是目录,就删除目录下所有的文件和文件夹File[] files = file.listFiles();// 遍历目录下的文件和文件夹for (File f : files) {// 如果是文件就删除if (f.isFile()) {ifDeleted(f, isDeleted);} else if (file.isDirectory()) {// 如果是文件夹就递归deleteGivenFiles(f, isDeleted);}}} else if (file.isFile()) {ifDeleted(file, isDeleted);}}private static boolean ifDeleted(File oneFile, Boolean isDeleted) {String fileName = oneFile.getName();if (givenFileNames.contains(fileName)) {System.out.println("被删除的文件:" + oneFile.getPath());if (isDeleted) {oneFile.delete();}return Boolean.TRUE;}return Boolean.FALSE;}
}

函数ifDeleted(File oneFile, Boolean isDeleted)用于判断文件名是否符合预期,并根据isDeleted确认是否删除文件。通过对比可知,Java8的walk函数更简单,deleteGivenFiles很臃肿。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/01243821.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

10-项目范围管理(2/10 十大管理)

9.1 管理基础 9.1.1 产品范围和项目范围产品范围:指某项产品、服务或成果所具有的特征和功能。产品范围的完成情况是根据产品需求来衡量的。 项目范围:包括产品范围,是为交付具有规定特性与功能的产品服务或成果而必须完成的工作。项目范围的完成情况是根据项目管理计划来衡…

读天才与算法:人脑与AI的数学思维笔记11_算法如何思考

读天才与算法:人脑与AI的数学思维笔记11_算法如何思考1. 创造力 1.1. 创建一种算法,其首要任务是放弃已知的所有艺术风格,然后判断由算法自己所产生的艺术品是否具有与所有艺术风格都截然不同的特性,即真正独树一帜的艺术风格 1.2. 抗性模型同样适用于人类创造力代码的引导…

.net8系列-04图文并茂手把手教你配置Swagger支持token以及实现Swagger扩展,Swagger代码单独抽离

前情提要 接上篇文章,我们当前已完成如下内容:创建应用成功 创建接口成功 配置Swagger实现接口注释和版本控制 本文章主要内容为: 配置Swagger支持token传值测试接口快速上手-代码配置 添加如下代码 文件目录:\xiaojinWebApplication\xiaojinWebApplication\Program.cs// S…

Ubuntu24.04系统Docker安装nextcloud+onlyoffice

1.Ubuntu系统下载 Ubuntu镜像站大全 我用的是山东大学的镜像站 我下的是desktop版本就是有GUI图形界面,如果不需要可以下载server版本2.开启SSH启用root用户远程登陆 由于我使用远程工具MobaXterm进行连接,所以安装完系统后需要开启SSH,如果你不需要使用远程工具远程可以跳过…

存储器数据恢复相关知识

讲述硬盘基本结构及其储存理论,介绍如何恢复常用存储器数据。目录目录理论知识 硬盘如何储存数据? 磁道和扇区简介 盘面号 磁道 柱面 扇区 硬盘如何读写数据? 数据删除原理 数据如何丢失的? 人为原因造成的数据丢失: 自然灾害造成的数据丢失: 软件原因造成…

TODO -蓝桥杯2018年A组-付账问题

0.题目 题目描述 几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。 现在有 \(n\) 个人出去吃饭,他们总共消费了 \(S\) 元。其中第 \(i\) 个人带了 \(a_i\) 元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢? 为了…