使用SBT创建新文件夹并将当前文件复制到新文件夹

时间:2018-02-22 21:55:12

标签: scala sbt

我是SBT和build.sbt文件的新手。并尝试将文件夹从一个文件夹移动到另一个文件夹查看SBT文档并不是很有帮助。我要做的是创建一个名为b的文件夹,并将a及其内容复制到b。

mkdir b cp a到b导致b / a

感谢。

1 个答案:

答案 0 :(得分:0)

使用sbt任务:https://www.scala-sbt.org/1.x/docs/Tasks.html

添加到build.sbt

val cp = Def.taskKey[Unit]("copy file")

cp := {
  import java.nio.file.Files
  import java.nio.file.Paths
  def copyDir(from: java.nio.file.Path, to: java.nio.file.Path): Unit = {
    if(!Files.exists(to.resolve(from)))
      Files.copy(from, to.resolve(from))
    if(from.toFile.isDirectory) {
      from.toFile.listFiles().toList.map(_.toPath).foreach(f => copyDir(f, to))
    }
  }

  val from = Paths.get("src") // your dir

  val to = Paths.get("to")
  if(!Files.exists(to))
    Files.createDirectory(to)
  copyDir(
    from,
    to
  )

}

执行cmd sbt cp,将复制文件