ccleve
ccleve

Reputation: 15799

How to copy a file to a directory in Java 7

I'm trying to copy a number of files to an output directory in Java 7 using Path and Files. This doesn't work:

Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/");

It generates a "directory not empty" error.

Yes, I could write code to name the output file directly, or use Guava, but I'm trying to do it the simplest way using the new Java 7 nio classes.

Upvotes: 10

Views: 11491

Answers (3)

Reimeus
Reimeus

Reputation: 159784

The command appears to be attempting to replace the directory itself. Try specifying the filename in the target directory

Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/file.txt"));

Upvotes: 7

W vd L
W vd L

Reputation: 625

The easiest way:

Path file = /* path to source file */
Path to = /* path to destination directory */
Files.copy(file, to.resolve(file.getFileName()));

Upvotes: 13

Maxim Shoustin
Maxim Shoustin

Reputation: 77904

From docs Java 7:

copy(Path source, Path target, CopyOption... options)

Copy a file to a target file.

So you must specify destination file.

I have a large number of files

You can get file name by splitting source path and append to destination folder.

Upvotes: 4

Related Questions