Trail: Essential Classes
Lesson: Basic I/O
Section: File I/O (featuring NIO.2)
Copying a File or Directory
Home Page > Essential Classes > Basic I/O
Copying a File or Directory
You can copy a file or directory using the copyTo method. The copy fails if the target file exists, unless the REPLACE_EXISTING opton is specified.

Directories can be copied, however files inside the directory are not copied, so the new directory is empty even when the original directory contains files.

When copying a symbolic link, the target of the link is copied. If you want to copy the link itself, and not the contents of the link, specify either the NOFOLLOW_LINKS or REPLACE_EXISTING options.

This method takes a varargs argument — the following StandardCopyOption and LinkOption enums are supported:

The copyTo method is simple to use:

import static java.nio.file.StandardCopyOption.*;
...
try {
    path.copyTo(newPath, REPLACE_EXISTING, COPY_ATTRIBUTES);
} catch (IOException x) {
    //Logic for error condition...
    System.err.println(x);
    return;
}

The Copy example uses copyTo and the Files.walkFileTreemethod to support a recursive copy. See Walking the File Tree for more information.

Previous page: Deleting a File or Directory
Next page: Moving a File or Directory