代码之家  ›  专栏  ›  技术社区  ›  user2896120

检查文件是否存在于嵌套目录中?

  •  1
  • user2896120  · 技术社区  · 7 年前

    val inputPath = basePath + dataSet + "/*/*/*/*/*/" 但是,有些目录甚至更加嵌套。例如,假设我们有以下目录结构:

    /hello/world/my/name/is/somedatafiles 另一个目录结构可能如下所示: /hello/world/my/name/is/waldo/somedatafiles

    在目录结构不均匀的Scala中,有没有办法到达目录的末尾?

    2 回复  |  直到 7 年前
        1
  •  1
  •   rdmueller    7 年前

    看看这个片段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

        2
  •  0
  •   Hasan    6 年前

    walkTree 返回文件 目录, i、 最终人们可以拥有一个名为.mp3的目录,

    val dirList = walkTree(f).filter(!isDirectory(_)).map ...