Java删除文件夹下所有文件的方法
1.使用FileUtils类
来自 Apache Commons IO的FileUtils类提供了几个方便的文件操作实用程序。您可以使用该FileUtils.cleanDirectory()方法递归删除目录中的所有文件和子目录,而不删除目录本身。
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File directory = new File("/path/to/dir");FileUtils.cleanDirectory(directory);}
}
要递归删除目录及其中的所有内容,您可以使用该FileUtils.deleteDirectory()方法。
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File directory = new File("/path/to/dir");FileUtils.deleteDirectory(directory);}
}
或者,您可以使用该FileUtils.forceDelete()方法删除一个目录和所有子目录。
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class Main {public static void main(String[] args) throws IOException {File directory = new File("/path/to/dir");FileUtils.forceDelete(directory);}
}
2.使用File.delete()方法
该File.delete()方法删除由指定路径名表示的文件或目录。有许多方法可以有条件地删除使用它的目录中的文件和子目录。
例如,以下解决方案仅删除主目录中的文件,所有子目录保持不变。
import java.io.File;
import java.util.Objects;
public class Main {public static void main(String[] args) {File directory = new File("/path/to/dir"); for (File file: Objects.requireNonNull(directory.listFiles())) {if (!file.isDirectory()) {file.delete();}}}
}
如果您使用 Java 8 或更高版本,则可以使用:
import java.io.File;
import java.util.Arrays;
import java.util.Objects;
import java.util.function.Predicate;
public class Main {public static void deleteDirectory(File directory) {Arrays.stream(Objects.requireNonNull(directory.listFiles())).filter(Predicate.not(File::isDirectory)).forEach(File::delete);} public static void main(String[] args) {File directory = new File("/path/to/dir");deleteDirectory(directory);}
}
您可以轻松扩展解决方案以递归删除目录中的所有文件和子目录。请注意,File.delete()当且仅当目录为空时,您可以使用该方法删除目录。
import java.io.File;
import java.util.Objects;
public class Main {public static void deleteDirectory(File directory) {for (File file: Objects.requireNonNull(directory.listFiles())) {if (file.isDirectory()) {deleteDirectory(file);} else {file.delete();}}} public static void main(String[] args) {File directory = new File("/path/to/dir");deleteDirectory(directory);}
}
这是使用 Stream API 的版本。它利用该Files.walk()方法并删除目录中的所有文件和子目录以及目录本身。
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Comparator;
public class Main {public static void deleteDirectory(Path directory) throws IOException {Files.walk(directory).sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete);} public static void main(String[] args) throws IOException {Path directory = Path.of("/path/to/dir");deleteDirectory(directory);}
}
如果您需要从目录及其所有子目录中删除“仅文件”,您可以执行以下操作:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main {public static void deleteDirectory(File directory) throws IOException {Files.walk(directory.toPath()).filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete);} public static void main(String[] args) throws IOException {File directory = new File("/path/to/dir");deleteDirectory(directory);}
}
以上就是关于“Java删除文件夹下所有文件的方法”介绍,希望对大家的学习能够有所帮助哦。
Java删除文件夹下所有文件的方法相关推荐
- Java删除指定文件夹下的文件和目录
Java删除指定文件夹下的文件和目录 import java.io.File;public class TestFile {public static void main(String[] args) ...
- java删除文件模糊_Java实现的模糊匹配某文件夹下的文件并删除功能示例
本文实例讲述了Java实现的模糊匹配某文件夹下的文件并删除功能.分享给大家供大家参考,具体如下: package com.wyebd.gis; import java.io.File; /** * @ ...
- Java中怎么获取文件夹的名称_java获取文件夹下所有文件的名称
<java获取文件夹下所有文件的名称>由会员分享,可在线阅读,更多相关<java获取文件夹下所有文件的名称(2页珍藏版)>请在人人文库网上搜索. 1.如果想要获得当前文件中的文 ...
- 解决file.delete老是失败的问题,批量删除文件夹下的文件
file.delete有时会失败,解决 解决file.delete失败问题 最近在项目中遇到是要FIle的delete方法后,文件一直删除不了,经排查,是当时刚好有文件处于读取状态(可能是文件夹里面直 ...
- java中File类应用:遍历文件夹下所有文件
练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件;import java.io.File;public class Test {public sta ...
- python删除文件夹中的jpg_python删除文件夹下相同文件和无法打开的图片
前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以写了两个python的小程序用来解决这个问题 删除相同文件: ...
- python 遍历,删除,复制文件夹下所有文件
import osdef files_and_dirs_list(dir_path):"""遍历文件夹及文件夹下所有文件(包括文件夹):param dir_path: 文 ...
- java读取文件夹下所有文件并替换文件每一行中指定的字符串
java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...
- java 获取文件夹下所有文件
java 获取文件夹下所有文件 以下两个函数实现获取文件夹下所有文件 /*** 获取指定文件夹下所有文件,不含文件夹里的文件** @param dirFilePath 文件夹路径* @return*/ ...
最新文章
- java三种循环的区别_JavaSE三种循环注意点
- activity 点击后传递数据给fragment_Fragment 的过去、现在和将来
- linux 4.14.2编译,vmware中linux内核2.6.14.4编译全过程_linux教程
- 通信PK电子,谁牛?
- Spring Cloud入门,看这篇就够了!
- Total Commander通过CTRL+B调用git-base.exe
- [Visual Studio] VS2012调试时很慢的解决方案
- ADMM算法的应用: 降低SDP算法复杂度
- redis 可视化客户端工具
- RSA密钥对生成过程具体实践
- SM6S系列TVS二级管 可通过ISO 7637-2 5a/5b测试
- ae合成设置快捷键_AE脚本使用快捷键控制关键帧操作 Keyboard v1.2.2【资源分享1449】...
- 用万用表测量NPN、PNP、NMOS、PMOS的好坏或分极
- 英语十大词性之一 - 介词
- UNI-APP 生成海报/DOM转图片
- W3school学习 js-2
- python发送短信验证码_python发送短信验证码
- PHP 文档标签添加 间隔符“多空格”处理
- ios 运行 release 版本
- 【算法】Regular Expression Matching 正则匹配