【java】删除文件夹及文件夹中的所有文件

这篇具有很好参考价值的文章主要介绍了【java】删除文件夹及文件夹中的所有文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

删除指定文件夹及文件夹中的所有文件。

环境

JDK 1.8

代码示例

在JDK 8中,可以使用java.nio.file.Files和java.nio.file.Path类来删除一个文件夹及其中的所有文件和子文件夹。具体代码如下所示:

import java.io.IOException;
import java.nio.file.*;


public class DeleteDirectoryExample {
    
    public static void main(String[] args) throws IOException {
        Path directoryPath = Paths.get("your-directory-path"); //替换为具体的目录路径
        
        deleteDirectory(directoryPath);
    }

    public static void deleteDirectory(Path path) throws IOException {
        if (Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS)) {
            try (DirectoryStream<Path> entries = Files.newDirectoryStream(path)) {
                for (Path entry : entries) {
                    deleteDirectory(entry);
                }
            }
        }

        Files.delete(path);
    }
}


在上述代码中,请将 your-directory-path替换为要删除的目录路径。程序首先检查指定路径是否是一个目录,并继续递归删除其子目录和文件。最后,通过调用 Files.delete() 方法删除路径本身。

需要注意的是,该程序会永久性地删除指定的目录和其中的所有文件和子目录,因此请谨慎使用。

总结

该方法使用 JDK 1.8 提供的文件工具类,其中有几个不常用的类,解释如下

1、LinkOption.NOFOLLOW_LINKS
Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS) 注释解释:

选项数组可以用于指示如何处理符号链接,以防文件是符号链接。默认情况下,将跟随符号链接,并读取链接的最终目标的文件属性。如果存在 NOFOLLOW_LINKS 选项,则不会跟随符号链接。

如果需要区分 I/O 异常与文件不是目录的情况,则可以使用readAttributes方法读取文件属性,并使用 BasicFileAttributes.isDirectory 方法测试文件类型。

2、DirectoryStream

Java中的 DirectoryStream 类是一个用于遍历目录的接口,它提供了一种基于迭代器的方式来获取指定目录下的文件和子文件夹。它可以与Java NIO.2中的Path类和Files类配合使用,使我们能够更方便地处理文件系统中的目录。

DirectoryStream类有一个泛型类型参数,通常用于指定遍历得到的元素类型,例如Path或String等。

以下是使用DirectoryStream类遍历目录并输出所有文件名的示例代码:

import java.io.IOException;
import java.nio.file.*;

public class DirectoryStreamExample {

    public static void main(String[] args) throws IOException {
        Path directoryPath = Paths.get("your-directory-path"); // 替换为具体的目录路径

        try (DirectoryStream<Path> stream = Files.newDirectoryStream(directoryPath)) {
            for (Path file : stream) {
                System.out.println(file.getFileName());
            }
        }
    }
}

在上述代码中,请将 your-directory-path 替换为要遍历的目录路径。该程序创建一个DirectoryStream实例,并在try-with-resources语句块中使用它来遍历目录中的文件和子文件夹,最后输出所有文件名。使用try-with-resources语句块可以确保DirectoryStream对象被关闭,以释放相关资源。

需要注意的是,当使用DirectoryStream类遍历目录时,不会遍历子目录中的目录,因此需要使用递归算法来实现遍历整个目录树的操作。

关于更多 DirectoryStream 详见 【java】 DirectoryStream 及其简单使用文章来源地址https://www.toymoban.com/news/detail-500114.html

到了这里,关于【java】删除文件夹及文件夹中的所有文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python遍历文件夹下的所有子文件夹,并将指定的文件复制到指定目录

    在1文件夹中有1,2两个文件夹 将这两个文件夹中的文件复制到 after_copy中 源文件 复制后: 参考1 源文件 复制后 参考2 如果复制bmp文件就将 suffix = \\\".json\\\" 改为 suffix = \\\".bmp\\\"

    2024年02月11日
    浏览(91)
  • 用脚本定时删除文件夹内所有文件

            一个朋友打电话过来,说工作不太如意,自己做的工作成果被老板过河拆桥,想离职又不甘心被白那啥,问我能不能做一个批处理文件,到自己离开一个月以后,自动清除自己的文档,于是开始做了:         文件做好了,保存成 .ansi 格式,后缀为.bat 的批处

    2024年02月07日
    浏览(62)
  • C#怎么删除指定文件或文件夹

    本文主要介绍了C#如何删除指定文件或文件夹,具有很好的参考价值,希望对大家有所帮助。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public static string deleteOneFile( string fileFullPath)          {              // 1、首先判断文件或者文件路径是否存在              i

    2024年02月13日
    浏览(48)
  • [python]裁剪文件夹中所有pdf文档并按名称保存到指定的文件夹

    最近在写论文的实验部分,由于latex需要pdf格式的文档,审稿专家需要对pdf图片进行裁剪放大,以保证图片质量。 原图: 裁剪后的图像: 代码粘贴如下。将input_folder和output_folder替换即可。(x1, y1), (x2, y2) 分别代表裁剪框的像素位置。

    2024年01月19日
    浏览(64)
  • 指定linux文件夹下所有文件赋权命令“chmod -R 755”

    仓库:Ai-trainee/GPT-Prompts-Hub 下面我们假设要为:/opt/robot/lib/robot_control/下所有子文件赋权 如果要为 robot_control 目录中的所有文件分配权限(在 Linux 术语中也称为“更改文件权限”或“chmod”),则可以使用 chmod 命令在 Linux 终端中。 下面通过逐步类比来理解 Linux 中文件权限的

    2024年04月27日
    浏览(59)
  • Python小技巧【1】——获取指定文件夹下的所有文件【glob模块】

    glob模块 是Python标准库中一个重要的模块,主要用来 查找符合特定规则的目录和文件,并将搜索的到的结果返回到一个列表中。  1、常用函数glob() 返回符合匹配条件的所有文件的路径。  2、重要参数recursive recursive参数 代表是否递归调用,与特殊通配符 ** 一同使用,默认为

    2024年02月04日
    浏览(65)
  • Unity Editor 遍历指定文件夹下的所有prefab

    适用场景:                  查找指定文件夹下所有的prefab并找到所有引用的图片及路径。 步骤分析:                 1、通过guid获取资源路径                 2、获取文件夹中包含后缀为.prefab的路径                 3、编辑器下加载该资源(如果对资源有编辑的话

    2024年02月04日
    浏览(67)
  • python判断文件夹是否存在,不存在则创建它,并将文件夹下所有的文件及子文件删除

    1、python判断文件夹是否存在,不存在则创建它,并将文件夹下所有的文件及子文件删除 2、python之判断文件文件夹是否存在,存在则删除,不存在则创建 2.1、删除文件于文件夹 使用os.remove删除文件夹会出现拒绝访问的错误,所以要使用以下方式进行删除 2.2、创建文件与文件

    2024年02月11日
    浏览(117)
  • 使用javaAPI对HDFS进行文件上传,下载,新建文件及文件夹删除,遍历所有文件

    目录 //通过工具类来操作hdfs   hdfs dfs -put d:user_info.txt  /user_info.txt  // 将文件放入到hdfs中  2.通过工具类来操作hdfs   hdfs dfs -get hdfs路径   本地路经  将文件放入到本地Windows中 3.通过工具类来操作hdfs   hdfs dfs -mkdir -p  hdfs路径 4.通过工具类来操作hdfs  查看一个文件是否存在

    2024年02月12日
    浏览(50)
  • 用perl查找文件夹中的所有文件和目录

    查找文件夹中的文件和目录是一个很常见的操作,使用perl的File::Find模块可以很方便的实现。首先使用perldoc File::Find 查看一下文档: 这个核心的就是文档中描述的回调函数。我们举一个实际的例子,一个空的git仓库为例,下面的脚本用于查找文件夹中的所有文件: 回调函数中

    2024年02月04日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包