In an earlier article, we looked at how to create a temporary file in Java. In this article, you'll learn how to create a temporary directory in Java.

Using Files.createTempDirectory() Method

In Java 7 and higher, you can use the Files.createTempDirectory() static method to create a temporary directory. This method creates a new directory in the default temporary-file directory, using the given prefix to generate its name.

Let us have an example:

try {
    // create temporary folder
    Path path = Files.createTempDirectory("java-");

    // print path
    System.out.println(path.toAbsolutePath().toString());

} catch (IOException ex) {
    ex.printStackTrace();
}

The above code will create a temporary directory and print its absolute path on the console. Here is how it looks like on a Linux machine:

/tmp/java-5122075410590166027

To create a temporary folder in another location, you can pass an instance of Path as a first argument to Files.createTempDirectory():

try {
    // folder to create temporary directory
    Path folder = Paths.get("dir");

    // create temporary folder
    Path path = Files.createTempDirectory(folder, "java-");

    // print path
    System.out.println(path.toAbsolutePath().toString());

} catch (IOException ex) {
    ex.printStackTrace();
}

Using File.createTempFile() Method

In Java 6 and below, you can use File.createTempFile() method from the legacy I/O API to create a temporary file in the default temporary-file directory as shown below:

try {
    // create a file instance
    File file = File.createTempFile("java-", ""); // no suffix

    // create temporary folder
    file.mkdir();

    // print folder path
    System.out.println(file.getAbsolutePath());

} catch (IOException ex) {
    ex.printStackTrace();
}

Notice the file.mkdir() in the above example. We have to explicitly call this method to create a directory in Java from the File object.

Further Reading

You may be interested in other Java I/O articles:

✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.