1. 程式人生 > >Scala中遍歷檔案、刪除檔案和目錄

Scala中遍歷檔案、刪除檔案和目錄

目前Scala沒有“正式的”用來訪問某個目錄中的所有檔案,或者遞迴地遍歷所有目錄的類,可以藉助java的File類來實現檔案目錄的遍歷和檔案操作。

  1. import java.io.File  
  2. /** 
  3.  * 20170309 
  4.  * 目錄操作 
  5.  */
  6. object dir {  
  7.   def main(args: Array[String]) {  
  8.     val path: File = new File("C:/Users/wei/ScalaWorkspace/learn0305")  
  9.     for (d <- subdirs(path))  
  10.       println(d)  
  11.   }  
  12.   //遍歷目錄
  13.   def subdirs(dir: File): Iterator[File] = {  
  14.     val children = dir.listFiles.filter(_.isDirectory())  
  15.     children.toIterator ++ children.toIterator.flatMap(subdirs _)  
  16.   }  
  17.   //刪除目錄和檔案
  18.   def dirDel(path: File) {  
  19.     if (!path.exists())  
  20.       return
  21.     elseif (path.isFile()) {  
  22.       path.delete()  
  23.       println(path + ":  檔案被刪除")  
  24.       return
  25.     }  
  26.     val file: Array[File] = path.listFiles()  
  27.     for (d <- file) {  
  28.       dirDel(d)  
  29.     }  
  30.     path.delete()  
  31.     println(path + ":  目錄被刪除")  
  32.   }