Java中File对象删除删除失败问题

发布于 2025年03月04日

问题:

在Java中File类对象如果是目录,当这个目录不为空时,调用delete方法并不会成功删除

解决方案1:使用FileUtils工具类

File tempDir = new File("/test");
  if (tempDir.exists()) {
      deleteAll(tempDir);
      FileUtils.deleteQuietly(tempDir);
  }

解决方案2:使用递归清空目录并删除文件夹

这种清空适合没有导入FileUtils工具类的情况

  public static void deleteAll(File file) {

        if (file.isFile() || file.list().length == 0) {
            file.delete();
        } else {
            for (File f : file.listFiles()) {
                deleteAll(f); // 递归删除每一个文件

            }
            file.delete(); // 删除文件夹
        }
    }



评论