14 NİSAN 2010, ÇARŞAMBA
Nasıl scala bir alt dizinindeki tüm dosyaları listeler?
Bir "scala-vari" (işlevsel yani sanırım) yinelemeli olarak Listeleme şekilde bir dizindeki dosyalar? iyi var Ne belirli bir desen eşleştirme?
Örneğin işe yaramayan c:\temp
"a*.foo"
eşleşen dosyaları.
CEVAP
14 NİSAN 2010, ÇARŞAMBA
Scala kod genellikle G/Ç, dizinler de dahil olmak üzere okuma ile başa çıkmak için Java sınıfları kullanır. Bir şey gibi yapmak zorunda:
import java.io.File
def recursiveListFiles(f: File): Array[File] = {
val these = f.listFiles
these these.filter(_.isDirectory).flatMap(recursiveListFiles)
}
Tüm dosyaları toplamak ve bir düzenli ifade kullanarak filtre olabilir:
myBigFileArray.filter(f => """.*\.html$""".r.findFirstIn(f.getName).isDefined)
Ya da özyinelemeli arama ve normal ifade dahil olabilir:
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))
}
Bunu Paylaş:
Nasıl gıt dizinindeki dosyaları inkar ...
Nasıl yinelemeli olarak bulmak ve alt ...
Nasıl bir JAR dosyası içindeki dosyala...
Nasıl geçerli Gıt benim şubesinden (iz...
Nasıl dosyaları zaman uyumsuz olarak y...