摘要:使用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很臃肿。

使用Files.walk删除文件的更多相关文章

  1. 总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  2. python 实现彻底删除文件夹和文件夹下的文件

    python 中有很多内置库可以帮忙用来删除文件夹和文件,当面对要删除多个非空文件夹,并且目录层次大于3层以上时,仅使用一种内置方法是无法达到彻底删除文件夹和文件的效果的,比较low的方式是多次调用直 ...

  3. python实现删除文件与目录的方法

    os.remove(path) 删除文件 path. 如果path是一个目录, 抛出 OSError错误.如果要删除目录,请使用rmdir().os.rmdir()只能删除空目录 remove() 同 ...

  4. python删除文件与目录的方法

    python内置方法删除目录(空目录与非空目录)及文件 1.os.remove(file_path):删除文件 #PPTV是文件夹,xen.txt是文件 >>> os.remove( ...

  5. python基础之删除文件及删除目录的方法-乾颐堂

    下面来看一下python里面是如何删除一个文件及文件夹的~~ 首先引入OS模块 import os 删除文件: os.remove() 删除空目录: os.rmdir() 递归删除空目录: os.re ...

  6. python 删除文件/夹

    原文 : http://www.cnblogs.com/SophiaTang/archive/2012/01/16/2323467.html import os 删除文件: os.remove() 删 ...

  7. python基础之删除文件及删除目录的方法

    下面来看一下python里面是如何删除一个文件及文件夹的~~ 1 2 3 4 5 6 7 8 #首先引入OS模块 import os #删除文件:  os.remove() #删除空目录:  os.r ...

  8. python根据文件目录、文件类型和文件与当前时间差删除文件

    直接贴代码: 删除某个目录下的文件,不遍历木路下文件夹下的文件,根据时间差删除,默认7天 #!/usr/bin/python # -*- coding: gbk -*- import os impor ...

  9. python 删除文件或文件夹

    os.remove(path) 删除文件 path. 如果path是一个目录, 抛出 OSError错误.如果要删除目录,请使用rmdir(). remove() 同 unlink() 的功能是一样的 ...

  10. python实现:递归删除文件并保存删除记录

    说明: 此脚本用于删除指定目录及子目录下符合删除规则的文件,并将删除的文件记录到指定目录下的指定文件,便于查看删除记录. 注意: 此脚本删除的文件,不会进入回收站,将被直接彻底删除,请谨慎操作!!! ...

随机推荐

  1. linux服务器CPU占用100%,宝塔负载100%情况问题排查处理记录(CentOS 8.1系统)

    问题描述:linux服务器cpu占比达到100%,站点无法正常访问,宝塔面板进入后卡顿,负载显示也是持续100%(下方测试系统为CentOS 8.1) 排查可能:1.使用netstat命令查看目前的链 ...

  2. deepseek:如何用php写微信公众号订阅回复事件

    以下是使用 PHP 重写的微信公众号订阅事件回复的示例代码.这个代码实现了用户订阅(关注)公众号时,自动回复一条欢迎消息. PHP 实现代码 <?php // 微信公众平台的Token defi ...

  3. kali安装pdtm工具

    kali安装pdtm工具 前言 今天想安装一下pdtm工具集的,但过程中一直出现各种错误,找了几篇文章之后并没有找到解决方法,后解决之后写了这样一篇文章希望可以解决大家在安装过程中碰到的部分问题 介绍 ...

  4. Go map字典排序

    前言 我们已经知道 Go 语言的字典是一个无序集合,如果你想要对字典进行排序,可以通过分别为字典的键和值创建切片,然后通过对切片进行排序来实现. 按照键进行排序 如果要对字典按照键进行排序,可以这么做 ...

  5. linux 根目录扩容方法

    准备知识 linux volume 1.(PV)physical volume disk : 物理硬盘 物理硬盘需要转换成lvm(logic volume manage)可识别的状态,将磁盘的syst ...

  6. Redis 原理 - Set

    Set数据结构 使用 intset 当同时满足下面两个条件时,使用 intset 存储数据 元素个数少于512个 (set-max-intset-entries: 512) 所有元素都是整数值 不满足 ...

  7. exe4j工具使用-jar包转exe可执行文件

    exe4j介绍 exe4j可以将java打包的jar包转为exe可执行文件,实现在没有jdk环境下运行jar包. 下载链接 https://pan.baidu.com/s/1sfEJyxPABmhsl ...

  8. jeecgboot前端按钮角色权限控制(是否隐藏)

    官方文档 http://doc.jeecg.com/2044038 解决办法 首先需要修改前端代码,在想获得权限控制的按钮组件中使用指令 v-has="''". 代码示例: < ...

  9. sorting order 和sorting layer

    根据unity的api文档 https://docs.unity3d.com/ScriptReference/Renderer-sortingOrder.html Renderer's order w ...

  10. Wolfram常用计算

    1.方程与方程组 例1:求解方程 参考表达式: solve x^3 + 2x^2 - 6x + 5 = 0 real 求解所有根 例2:求解方程: 参考表达式: solve ax^2+bx+c=0 注 ...