Scala中遍历文件、删除文件和目录

目前Scala没有“正式的”用来访问某个目录中的所有文件,或者递归地遍历所有目录的类,可以借助java的File类来实现文件目录的遍历和文件操作。

import java.io.File
/**
 * 20170309
 * 目录操作
 */

object dir {

  def main(args: Array[String]) {
    val path: File = new File("C:/Users/wei/ScalaWorkspace/learn0305")
    for (d <- subdirs(path))
      println(d)
  }

  //遍历目录
  def subdirs(dir: File): Iterator[File] = {

    val children = dir.listFiles.filter(_.isDirectory())
    children.toIterator ++ children.toIterator.flatMap(subdirs _)

  }

  //删除目录和文件
  def dirDel(path: File) {
    if (!path.exists())
      return
    else if (path.isFile()) {
      path.delete()
      println(path + ":  文件被删除")
      return
    }

    val file: Array[File] = path.listFiles()
    for (d <- file) {
      dirDel(d)
    }

    path.delete()
    println(path + ":  目录被删除")

  }

}

你可能感兴趣的:(Scala)