1、问题概述?
在开发的过程中,可能有如下需求,需要删除目录及相关文件:
1、代码执行过程中,可能会生成大量的临时文件和目录,这些文件和目录使用后需要删除。
2、系统需要配置定时任务,定时删除相关的备份文件。
3、删除制定目录及目录中的相关文件。
所有代码都亲测过,可直接使用
本案例中的写法需要jdk1.8及以上环境支持,使用流stream及Files.walk等工具类完成,语法精辟,功能强大。
2、关键功能介绍
【1、本案例中要删除的目录格式及文件格式】
文件中存放相关文件:图片、视频、音频、文本都可以
【2、获取时间并转化格式】
获取年月日(2025-05-06)并将默认时间中的-替换成空,最后变成格式:20250506
LocalDate.now().toString().replace("-","");
【3、通过stream的方式遍历集合】
通过stream的方式遍历集合,每次遍历从集合中获取一条数据,并将引用赋值给file参数。
在本案例中,由于我要删除的是多目录,多文件,所以Arrays.stream().forEach(file->{})获取的实际上时以及目录信息。
Arrays.stream().forEach(file->{})
【4、通过Files.walk】
使用Files.walk可以递归判断文件是否符合相关条件,并删除文件。
Paths.get():通过绝对路径获取文件
.map(Path::toFile):通过map递归获取文件流
.forEach(File::delete):遍历.map返回的文件流信息,并调用File中delete方法删除文件。
Files.walk(Paths.get(file.getAbsolutePath()))
.map(Path::toFile)
.forEach(File::delete);
【5、获取当前java工程的项目路径】
String projectPath&