在Java中,目录是一种特殊类型的文件,它可以包含其他文件和目录。我们可以使用File
对象来创建目录、列出目录中的文件等。下面详细介绍如何在Java中创建、读取(列出)以及删除目录。
创建目录
有两个有用的File
工具方法可以用来创建目录:
-
mkdir()
方法创建一个目录,成功时返回 true
,失败时返回 false
。失败通常意味着File
对象中指定的路径已经存在,或者整个路径尚不存在而不能创建目录。
-
mkdirs()
方法不仅可以创建一个目录,还可以创建该目录的所有父级目录。
示例:在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);
directory.mkdirs();
File file = new File("/tmp/user/java/bin");
System.out.println(file.exists());
}
}
输出
true
注意:Java自动根据操作系统的约定处理路径分隔符。如果你在Windows版本的Java上使用正斜杠(/),路径仍然能够正确解析。
列出(读取)目录
你可以使用File
对象提供的list()
方法来列出目录中的所有文件和子目录:
示例:在Java中列出(读取)目录
下面的示例展示了如何列出/tmp
目录中的所有文件和子目录:
package com.tutorialspoint;
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()
方法来删除一个目录:
示例:在Java中删除目录
下面的示例展示了如何删除目录/tmp/user/java/bin
:
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("目录已成功删除。");
} else {
System.out.println("目录删除失败。");
}
} else {
System.out.println("目录不存在。");
}
}
}
输出
目录已成功删除。
需要注意的是,delete()
方法只能删除空目录;如果目录不为空,则需要先删除其内部的所有文件和子目录。如果需要删除非空目录及其所有内容,需要递归地调用delete()
方法来逐个删除子目录和文件。