我正在尝试使用Path和Files将许多文件复制到Java 7中的输出目录。这不起作用:
Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/");
它会生成“目录不为空”错误。
是的,我可以编写代码来直接命名输出文件,或者使用Guava,但我正在尝试使用新的Java 7 nio类以最简单的方式。
答案 0 :(得分:7)
最简单的方法:
Path file = /* path to source file */
Path to = /* path to destination directory */
Files.copy(file, to.resolve(file.getFileName()));
答案 1 :(得分:5)
该命令似乎试图替换目录本身。尝试在目标目录中指定文件名
Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/file.txt"));
答案 2 :(得分:4)
来自文档Java 7:
copy(路径源,路径目标,CopyOption ...选项)
将文件复制到目标文件。
所以你必须指定目标文件。
我有大量文件
您可以通过拆分源路径并附加到目标文件夹来获取文件名。