目录是一个文件,可以包含其他文件和目录的列表。您使用 File 对象创建目录,列出目录中可用的文件。有关完整的详细信息,请检查可以在 File 对象上调用的所有方法以及与目录相关的方法的列表。

创建目录

有两个有用的File 实用方法,可用于创建目录 

  • mkdir( ) 方法创建一个目录,成功时返回 true,失败时为假。失败表示File对象中指定的路径已经存在,或者由于整个路径尚不存在而无法创建目录。

  • mkdirs() 方法创建一个目录及其所有父目录。

示例

以下示例创建"/tmp/user/java/bin"目录 

package com.yxjc123;

import java.io.File;

public class DirectoryTest {
   public static void main(String args[]) {
      String dirname = "/tmp/user/java/bin";
      File directory = new File(dirname);

      // 现在创建目录。
      directory.mkdirs();

      //创建新文件对象
      File file = new File("/tmp/user/java/bin");

      System.out.println(file.exists());      
   }
} 

输出

编译并执行上述代码,创建"/tmp/user/java/bin"文件夹。

true 

注意 - Java 按照约定自动处理 UNIX 和 Windows 上的路径分隔符。如果您在 Windows 版本的 Java 上使用正斜杠 (/),路径仍将正确解析。

列出目录

您可以使用 list( )File 对象提供的方法列出目录中所有可用的文件和目录,如下所示 

示例

package com.yxjc123;

import java.io.File;

public class DirectoryTest {

   public static void main(String[] args) {
      File file = null;
      String[] paths;
  
      try {      
         //创建新文件对象
         file = new File("/tmp");

         // 文件和目录数组
         paths = file.list();

         //路径数组中的每个名称
         for(String path:paths) {
            // 打印文件名和目录名
            System.out.println(path);
         }
      } catch (Exception e) {
         //如果发生任何错误
         e.printStackTrace();
      }
   }
} 

输出

这将根据 /tmp 目录中可用的目录和文件产生以下结果 

user 

删除目录

您可以使用 File 对象提供的delete( ) 方法删除目录,如下 

示例

package com.yxjc123;

import java.io.File;

public class DirectoryTest {

   public static void main(String[] args) {
      File file = new File("/tmp/user/java/bin");
      if(file.exists()) {
         boolean success = file.delete();

         if (success) {
            System.out.println("The directory has been successfully deleted."); 
         }else {
            System.out.println("The directory deletion failed.");
         }        
      }else {
         System.out.println("The directory is not present."); 
      }
   }
} 

输出

这将根据 /tmp 目录中可用的目录和文件产生以下结果 

The directory has been successfully deleted.