Проверка наличия файлов во вложенных неравномерных каталогах? - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть программа, которая берет данные из вложенных каталогов и затем обрабатывает их.Я думал, что эти каталоги имеют четную структуру и могут просто сделать это для их извлечения:

val inputPath = basePath + dataSet + "/*/*/*/*/*/" Однако некоторые из каталогов еще более вложенные.Например, допустим, у нас есть такая структура каталогов:

/hello/world/my/name/is/somedatafiles может быть другая структура каталогов, которая выглядит следующим образом: /hello/world/my/name/is/waldo/somedatafiles

Есть ли способ добраться до концакаталог в Scala с неравномерной структурой каталогов?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

walkTree возвращает файлы каталогов и , т. Е. В конечном итоге можно получить каталог с именем .mp3, поэтому лучше фильтровать, например, что-то вроде:

val dirList = walkTree(f).filter(!isDirectory(_)).map ...
0 голосов
/ 12 сентября 2018

Взгляните на этот фрагмент с Rosettacode.org:

import java.io.File

object `package` { 
  def walkTree(file: File): Iterable[File] = {
    val children = new Iterable[File] {
      def iterator = if (file.isDirectory) file.listFiles.iterator else Iterator.empty
    }
    Seq(file) ++: children.flatMap(walkTree(_))
  }
}

object Test extends App {
  val dir = new File("/home/user")
  for(f <- walkTree(dir)) println(f)
  for(f <- walkTree(dir) if f.getName.endsWith(".mp3")) println(f)
}

https://rosettacode.org/wiki/Walk_a_directory/Recursively#Scala

Это должно сработать.

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