Java 简明教程

Java - Directory Operations

Directory in Java

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

Creating Directories

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

  1. mkdir() method 创建目录,成功时返回 true,失败时返回 false。失败表示 File 对象中指定的路径已存在,或者由于尚未存在整个路径而无法创建目录。

  2. mkdirs() method 创建目录及其所有父目录。

Example to Create Directory in Java

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

package com.tutorialspoint;

import java.io.File;

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

      // Create directory now.
      directory.mkdirs();

      // create new file object
      File file = new File("/tmp/user/java/bin");

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

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

true

Note − Java 会自动按照惯例处理 UNIX 和 Windows 上的路径分隔符。如果你在 Java 的 Windows 版本上使用正斜杠 (/),路径仍然会正确解析。

Listing (Reading) Directories

可以使用 File 对象提供的 list() method 按以下方式列出目录中可用的所有文件和目录 -

Example to Read (List) a Directory in Java

package com.tutorialspoint;

import java.io.File;

public class DirectoryTest {

   public static void main(String[] args) {
      File file = null;
      String[] paths;

      try {
         // create new file object
         file = new File("/tmp");

         // array of files and directory
         paths = file.list();

         // for each name in the path array
         for(String path:paths) {
            // prints filename and directory name
            System.out.println(path);
         }
      } catch (Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

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

user

Deleting Directories

可以使用 File 对象提供的 delete() method 按以下方式删除目录 -

Example to Delete a Directory in Java

package com.tutorialspoint;

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.