在Scala中将文件名拆分为绝对路径

mre*_*mre 6 split scala path

鉴于字符串

val path = "/what/an/awesome/path" 
Run Code Online (Sandbox Code Playgroud)

如何使用Scala为路径中的每个目录创建绝对路径列表?结果应该是:

List(/what, /what/an, /what/an/awesome, /what/an/awesome/path)
Run Code Online (Sandbox Code Playgroud)

奖励点是优雅,实用的解决方案.

Dav*_*low 13

val path = "/what/an/awesome/path"
val file = new java.io.File(path)
val prefixes = Iterator.iterate(file)(_.getParentFile).takeWhile(_ != null).toList.reverse
Run Code Online (Sandbox Code Playgroud)

  • @huynhjl附加一个`.drop(1)`很容易修复:-) (3认同)

Eas*_*sun 8

val path = "/what/an/awesome/path"

scala> path.tail.split("/").scanLeft(""){_ + "/" + _}.tail.toList
res1: List[java.lang.String] = List(/what, /what/an, /what/an/awesome, /what/an/awesome/path)
Run Code Online (Sandbox Code Playgroud)