【问题标题】:How to copy a file to a directory in Java 7Java 7 如何将文件复制到目录
【发布时间】:2013-11-10 17:56:50
【问题描述】:

我正在尝试使用路径和文件将一些文件复制到 Java 7 中的输出目录。这不起作用:

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

它会生成“目录非空”错误。

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

【问题讨论】:

  • 你为什么不想写Files.copy(Paths.get("/my/file.txt"), Paths.get("/my/output/directory/file.txt");?这是正确的做法。

标签: java nio


【解决方案1】:

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

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

【讨论】:

  • 我可以这样做,但是我有很多文件和一个输出目录,所以只指定目录更方便,就像你在做操作系统文件复制时一样。跨度>
  • 为什么更方便?反正你是在循环中。您真正需要添加多少代码才能获取文件路径的“名称”部分并将其添加到目录中?
【解决方案2】:

最简单的方法:

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

【讨论】:

    【解决方案3】:

    来自文档Java 7

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

    将文件复制到目标文件

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

    我有大量文件

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

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多