系列中的上一篇
当前教程
创建和读取目录
系列中的下一篇

系列中的上一篇: 管理文件属性

系列中的下一篇: 列出目录的内容

创建和读取目录

之前讨论过的一些方法,例如 delete(),适用于文件、链接和目录。但是,如何列出文件系统顶部的所有目录?如何列出目录的内容或创建目录?

 

列出文件系统的根目录

可以使用 FileSystem.getRootDirectories() 方法列出文件系统的所有根目录。此方法返回一个 Iterable,它使您可以使用增强型 for 语句迭代所有根目录。

以下代码片段打印默认文件系统的根目录

Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();
for (Path name: dirs) {
    System.err.println(name);
}

 

创建目录

可以使用 Files.createDirectory(Path, FileAttribute) 方法创建新目录。如果您没有指定任何 FileAttribute,则新目录将具有默认属性。例如

Path dir = ...;
Files.createDirectory(path);

以下代码片段在具有特定权限的 POSIX 文件系统上创建一个新目录

Set<PosixFilePermission> perms =
    PosixFilePermissions.fromString("rwxr-x---");
FileAttribute<Set<PosixFilePermission>> attr =
    PosixFilePermissions.asFileAttribute(perms);
Files.createDirectory(file, attr);

要创建多个级别的目录,其中一个或多个父目录可能尚不存在,可以使用便捷方法 Files.createDirectories(Path, FileAttribute)。与 Files.createDirectory(Path, FileAttribute) 方法一样,您可以指定一组可选的初始文件属性。以下代码片段使用默认属性

Files.createDirectories(Paths.get("foo/bar/test"));

目录将根据需要从上到下创建。在 foo/bar/test 示例中,如果 foo 目录不存在,则创建它。接下来,根据需要创建 bar 目录,最后创建 test 目录。

此方法可能在创建了一些但不是全部父目录后失败。

 

创建临时目录

可以使用以下 createTempDirectory 方法之一创建临时目录

第一个方法允许代码指定临时目录的位置,第二个方法在默认临时文件目录中创建一个新目录。


上次更新: 2023 年 1 月 25 日


系列中的上一篇
当前教程
创建和读取目录
系列中的下一篇

系列中的上一篇: 管理文件属性

系列中的下一篇: 列出目录的内容