【发布时间】:2017-10-28 16:04:40
【问题描述】:
我正在尝试使用 Scala 获取计算机上所有目录的列表和所有文件的列表。以下是我尝试解决问题的两种不同方法。为什么会出现空指针异常?
def fullDirList(directories: Array[String]): Array[String ] = {
directories.foldLeft( Array[String]() ){ (x, y) => x ++: fullDirList(getSubDirList(y))
}
def getFullDirList(directories: Array[String]): Array[String] = {
def loop(dir: Array[String], accDir: Array[String]): Array[String] = {
if (dir.isEmpty) accDir
else loop( dir.tail, accDir ++: getFullDirList( getSubDirList( dir.head ) ) )
} // END loop()
loop(directories, Array[String]())
} // END getFullDirList()
def getSubDirList(directoryName: String): Array[String] = {
( new File(directoryName) ).listFiles.filter(_.isDirectory).map(_.getName )
}
def getFileArray(directoryName: String): Array[String] = {
( new File(directoryName) ).listFiles.filter(_.isFile).map(_.getAbsolutePath)
}
【问题讨论】:
-
如果您提供有关异常位置的信息会更容易提供帮助。
标签: scala functional-programming