如何在Java7中将文件复制到目录

如何在Java7中将文件复制到目录,java,nio,Java,Nio,我正在尝试使用Path和files将大量文件复制到Java7中的输出目录。这不起作用: Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/"); 它生成一个“目录不为空”错误 是的,我可以编写代码直接命名输出文件,也可以使用Guava,但我正在尝试使用新的Java 7 nio类以最简单的方式命名输出文件。来自文档: 复制(路径源、路径目标、CopyOption…选项) 将文件复制到目标文件 所以您必须指定

我正在尝试使用Path和files将大量文件复制到Java7中的输出目录。这不起作用:

Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/");
它生成一个“目录不为空”错误

是的,我可以编写代码直接命名输出文件,也可以使用Guava,但我正在尝试使用新的Java 7 nio类以最简单的方式命名输出文件。

来自文档:

复制(路径源、路径目标、CopyOption…选项)

将文件复制到目标文件

所以您必须指定目标文件

我有大量的文件


您可以通过拆分源路径并附加到目标文件夹来获取文件名。

该命令似乎试图替换目录本身。尝试在目标目录中指定文件名

Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/file.txt"));
最简单的方法:

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

为什么不编写
Files.copy(path.get(“/my/file.txt”)、path.get(“/my/output/directory/file.txt”);
?这是正确的方法。我可以这样做,但我有大量的文件和一个输出目录,所以只需指定目录就更方便了,就像复制操作系统文件一样。为什么更方便呢?反正你处于循环中。你需要添加多少代码才能获取“名称”文件路径的一部分,并将其固定到目录中?