Reputation: 15799
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
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
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
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