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删除文件夹下所有文件的方法相关推荐

  1. Java删除指定文件夹下的文件和目录

    Java删除指定文件夹下的文件和目录 import java.io.File;public class TestFile {public static void main(String[] args) ...

  2. java删除文件模糊_Java实现的模糊匹配某文件夹下的文件并删除功能示例

    本文实例讲述了Java实现的模糊匹配某文件夹下的文件并删除功能.分享给大家供大家参考,具体如下: package com.wyebd.gis; import java.io.File; /** * @ ...

  3. Java中怎么获取文件夹的名称_java获取文件夹下所有文件的名称

    <java获取文件夹下所有文件的名称>由会员分享,可在线阅读,更多相关<java获取文件夹下所有文件的名称(2页珍藏版)>请在人人文库网上搜索. 1.如果想要获得当前文件中的文 ...

  4. 解决file.delete老是失败的问题,批量删除文件夹下的文件

    file.delete有时会失败,解决 解决file.delete失败问题 最近在项目中遇到是要FIle的delete方法后,文件一直删除不了,经排查,是当时刚好有文件处于读取状态(可能是文件夹里面直 ...

  5. java中File类应用:遍历文件夹下所有文件

    练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件;import java.io.File;public class Test {public sta ...

  6. python删除文件夹中的jpg_python删除文件夹下相同文件和无法打开的图片

    前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以写了两个python的小程序用来解决这个问题 删除相同文件: ...

  7. python 遍历,删除,复制文件夹下所有文件

    import osdef files_and_dirs_list(dir_path):"""遍历文件夹及文件夹下所有文件(包括文件夹):param dir_path: 文 ...

  8. java读取文件夹下所有文件并替换文件每一行中指定的字符串

    java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...

  9. java 获取文件夹下所有文件

    java 获取文件夹下所有文件 以下两个函数实现获取文件夹下所有文件 /*** 获取指定文件夹下所有文件,不含文件夹里的文件** @param dirFilePath 文件夹路径* @return*/ ...

最新文章

  1. java三种循环的区别_JavaSE三种循环注意点
  2. activity 点击后传递数据给fragment_Fragment 的过去、现在和将来
  3. linux 4.14.2编译,vmware中linux内核2.6.14.4编译全过程_linux教程
  4. 通信PK电子,谁牛?
  5. Spring Cloud入门,看这篇就够了!
  6. Total Commander通过CTRL+B调用git-base.exe
  7. [Visual Studio] VS2012调试时很慢的解决方案
  8. ADMM算法的应用: 降低SDP算法复杂度
  9. redis 可视化客户端工具
  10. RSA密钥对生成过程具体实践
  11. SM6S系列TVS二级管 可通过ISO 7637-2 5a/5b测试
  12. ae合成设置快捷键_AE脚本使用快捷键控制关键帧操作 Keyboard v1.2.2【资源分享1449】...
  13. 用万用表测量NPN、PNP、NMOS、PMOS的好坏或分极
  14. 英语十大词性之一 - 介词
  15. UNI-APP 生成海报/DOM转图片
  16. W3school学习 js-2
  17. python发送短信验证码_python发送短信验证码
  18. PHP 文档标签添加 间隔符“多空格”处理
  19. ios 运行 release 版本
  20. 【算法】Regular Expression Matching 正则匹配

热门文章

  1. hive sql 求周几
  2. 解决ie浏览器打不开网页,其他浏览器都可以正常打开网页的问题
  3. RegularExpression 2
  4. Zookeeper分布式锁原理
  5. SpringBoot集成Freemarker,并使用API生成word文件
  6. Java类变量(静态变量)
  7. latex 编译环境 :vscode +TexLive2020
  8. 人工智能代码实战:AI李白如何创作诗词
  9. 苏嵌实训——day2
  10. html5圆圈,HTML5圆形进度条特效代码