创建和读取目录
之前讨论过的一些方法,例如 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 日