将多个文件从一个文件夹复制到另一个

时间:2019-05-30 15:27:08

标签: scala file-io

我正在尝试使用以下代码将多个文件从一个文件夹复制到另一个文件夹

val pathCorpus = Files.copy(
  Paths.get("src/main/resources/corpusDirectory/corpus.mallet"),
  Paths.get("src/main/resources/corpus.mallet"),
  StandardCopyOption.REPLACE_EXISTING
)

val pathInferencer = Files.copy(
  Paths.get("src/main/resources/corpusDirectory/inferencer"),
  Paths.get("src/main/resources/inferencer"),
  StandardCopyOption.REPLACE_EXISTING
)

由于我需要复制两个文件,因此我两次使用Files.copy。 该代码可以正常工作,但我认为应该有更好的方法编写代码,例如以递归方式复制文件。

3 个答案:

答案 0 :(得分:1)

您可以使用FileUtils.copyDirectory()

val source = "C:/your/source";
val srcDir = new File(source);

val destination = "C:/your/destination";
val destDir = new File(destination);

    FileUtils.copyDirectory(srcDir, destDir);

谢谢

答案 1 :(得分:1)

我喜欢使用bash

import scala.sys.process.stringToProcess
val copyFiles: String = s"cp -R src/main/resources/corpusDirectory/ src/main/resources/".!!

您可以使用bash cp:https://www.cyberciti.biz/faq/copy-command/

答案 2 :(得分:1)

better-files支持通过source.copyTo(destination)语法递归复制目录。这是一个有效的例子

import better.files._

object Hello extends App {
  val source = file"/your/sourceDir"
  val destination = file"/your/destinationDir"
  source.copyTo(destination)
}

我们需要以下依赖项

libraryDependencies += "com.github.pathikrit" %% "better-files" % "3.8.0"