Подтвердить что ты не робот

Чтение файлов из каталога в Scala

Как получить список файлов (или всех файлов *.txt, например) в каталоге в Scala. Класс Source не помогает.

4b9b3361

Ответ 1

new java.io.File(dirName).listFiles.filter(_.getName.endsWith(".txt"))

Ответ 2

Версия JDK7 с использованием нового класса DirectoryStream:

import java.nio.file.{Files, Path}
Files.newDirectoryStream(path)
    .filter(_.getFileName.toString.endsWith(".txt"))
    .map(_.toAbsolutePath)

Вместо строки это возвращает Path, на котором есть множество удобных методов, таких как "relativize" и "subpath".

Обратите внимание, что вам также потребуется импортировать import scala.collection.JavaConversions._, чтобы включить взаимодействие с коллекциями Java.

Ответ 3

Класс Java File - это все, что вам нужно, хотя достаточно легко добавить некоторую Scala доброту в итерацию по каталогам.

import scala.collection.JavaConversions._

for(file <- myDirectory.listFiles if file.getName endsWith ".txt"){
   // process the file
}

Ответ 4

Теперь вы должны использовать библиотеки Java для этого.