2013-10-30 44 views
4

我试图使用路径和文件将大量文件复制到Java 7中的输出目录。这是行不通的:如何将文件复制到Java中的目录7

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

它产生一个“目录不为空”的错误。

是的,我可以编写代码来直接命名输出文件,或使用Guava,但我试图用最简单的方法使用新的Java 7 nio类。

+0

你为什么不想要写'Files.copy(Paths.get( “/我/ file.txt的” ),Paths.get(“/ my/output/directory/file.txt”);'?这是正确的方法。 –

回答

3

从文档Java 7

副本(路径源,路径目标,CopyOption ...选项)

拷贝文件到目标文件

所以你必须指定目标文件。

我有大量的文件

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

2

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

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

我可以做到这一点,但我有大量的文件和一个输出目录,所以指定目录更方便,就像你做操作系统文件拷贝一样 – ccleve

+0

对,用bash很简单,但这是Java 7 API。 –

+2

为什么它更方便?无论如何你都在循环中。多少c你真的需要添加来获取文件路径的“名称”部分,并将其粘贴到目录中? –

4

最简单的方法:

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