Скопируйте несколько файлов из одной папки в другую - PullRequest
2 голосов
/ 30 мая 2019

Я пытаюсь скопировать несколько файлов из одной папки в другую, используя следующий код

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 ]

1 голос
/ 30 мая 2019

Мне нравится использовать 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/

1 голос
/ 30 мая 2019

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"
1 голос
/ 30 мая 2019

Вы можете использовать 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);

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...