Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 程序删除空目录和非空目录

Java 实例大全

在此示例中,我们将学习在Java中删除一个空目录,一个非空目录和一个具有非空子目录的目录。

示例1:删除空目录的Java程序

import java.io.File;

class Main {
  public static void main(String[] args) {

    try {
      //创建一个新的文件对象
      File directory = new File("Directory");

      //删除目录
      boolean result = directory.delete();

      if(result) {
        System.out.println("目录已删除");
      }
      else {
        System.out.println("找不到目录");
      }

    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

在上面的示例中,我们使用了File类的delete()方法来删除名为Directory的目录。

在此,如果目录存在,则显示消息目录已删除。否则,将显示“ 找不到目录”

要了解有关文件的更多信息,请访问Java File

示例2:删除非空目录

在Java中,要删除非空目录,我们必须首先删除该目录中存在的所有文件。然后,我们可以删除目录。

import java.io.File;

class Main {
  public static void main(String[] args) {

    try {
      //创建一个新的文件对象
      File directory = new File("Directory");

      //列出数组中的所有文件
      File[] files = directory.listFiles();

      //从目录中删除每个文件
      for(File file : files) {
        System.out.println(file + " deleted.");
        file.delete();
      }

      //删除目录
      if(directory.delete()) {
        System.out.println("目录已删除");
      }
      else {
        System.out.println("Directory not Found");
      }

    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

在上面的示例中,我们已使用for-each循环删除目录中存在的所有文件。一旦删除了所有文件,便使用delete()方法删除目录。

示例3:递归删除非空目录

import java.io.File;

class Main {

  public static void deleteDirectory(File directory) {

    //文件是否为目录
    if(directory.isDirectory()) {
      File[] files = directory.listFiles();

      //如果目录包含任何文件
      if(files != null) {
        for(File file : files) {

          //如果子目录为非空,则进行递归调用
          deleteDirectory(file);
        }
      }
    }

    if(directory.delete()) {
      System.out.println(directory + " 被删除");
    }
    else {
      System.out.println("目录未删除");
    }
  }
  public static void main(String[] args) {

    try {
      //创建一个新的文件对象
      File directory = new File("Directory");

      Main.deleteDirectory(directory);

    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

在这里,假设我们有一个名为的非空目录Directory。将Directory包含2个文件命名file1.txt,并file2.txt和一个名为非空的子目录Subdirectory。同样,Subdirectory包含一个名为的文件file11.txt。

现在,当我们运行程序时,我们将得到以下输出。

Directory\file1.txt 被删除
Directory\file2.txt 被删除
Directory\Subdirectory\file11.txt 被删除
Directory\Subdirectory 被删除
目录已删除

在此,首先删除2个文件,然后递归函数删除 Subdirectory 内的文件。一旦Subdirectory为空,则将其删除。并且,最后将删除 Directory 。

Java 实例大全