Previous in the Series
Current Tutorial
Creating and Reading Directories

Previous in the Series: Managing Files Attributes

Next in the Series: Listing the Content of a Directory

Creating and Reading Directories

Some of the methods previously discussed, such as delete(), work on files, links and directories. But how do you list all the directories at the top of a file system? How do you list the contents of a directory or create a directory?

 

Listing a File System's Root Directories

You can list all the root directories for a file system by using the FileSystem.getRootDirectories() method. This method returns an Iterable, which enables you to use the enhanced for statement to iterate over all the root directories.

The following code snippet prints the root directories for the default file system:

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

 

Creating a Directory

You can create a new directory by using the Files.createDirectory(Path, FileAttribute) method. If you don't specify any FileAttribute, the new directory will have default attributes. For example:

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

The following code snippet creates a new directory on a POSIX file system that has specific permissions:

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

To create a directory several levels deep when one or more of the parent directories might not yet exist, you can use the convenience method, Files.createDirectories(Path, FileAttribute). As with the Files.createDirectory(Path, FileAttribute) method, you can specify an optional set of initial file attributes. The following code snippet uses default attributes:

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

The directories are created, as needed, from the top down. In the foo/bar/test example, if the foo directory does not exist, it is created. Next, the bar directory is created, if needed, and, finally, the test directory is created.

It is possible for this method to fail after creating some, but not all, of the parent directories.

 

Creating a Temporary Directory

You can create a temporary directory using one of createTempDirectory methods:

The first method allows the code to specify a location for the temporary directory and the second method creates a new directory in the default temporary-file directory.


Last update: January 25, 2023


Previous in the Series
Current Tutorial
Creating and Reading Directories

Previous in the Series: Managing Files Attributes

Next in the Series: Listing the Content of a Directory