स्कैला कोड आमतौर पर I / O से निपटने के लिए जावा कक्षाओं का उपयोग करता है, जिसमें रीडिंग डायरेक्टरीज़ भी शामिल हैं। तो आपको कुछ इस तरह करना होगा:
import java.io.File
def recursiveListFiles(f: File): Array[File] = {
val these = f.listFiles
these ++ these.filter(_.isDirectory).flatMap(recursiveListFiles)
}
आप सभी फ़ाइलों को एकत्र कर सकते हैं और फिर एक regex का उपयोग करके फ़िल्टर कर सकते हैं:
myBigFileArray.filter(f => """.*\.html$""".r.findFirstIn(f.getName).isDefined)
या आप पुनरावर्ती को पुनः खोज में शामिल कर सकते हैं:
import scala.util.matching.Regex
def recursiveListFiles(f: File, r: Regex): Array[File] = {
val these = f.listFiles
val good = these.filter(f => r.findFirstIn(f.getName).isDefined)
good ++ these.filter(_.isDirectory).flatMap(recursiveListFiles(_,r))
}