scala> import sys.process._
import sys.process._
scala> "ls -d */".!
ls: */ : No such file or directory
res0: Int = 2
如何获取当前目录中的所有文件夹?
我找到了这个解决方案http://alvinalexander.com/scala/scala-function-list-subdirectories-in-directory,但我很好奇为什么它不起作用?
答案 0 :(得分:3)
正如其他答案所述,*
由shell扩展,而不是由Java / Scala扩展。
好像你只对在当前目录中查找目录列表感兴趣。对于那个产生一个单独的shell绝对是一种过度杀伤。
这可以很容易地在Scala(或Java)中完成:
scala> import java.io.File
import java.io.File
scala> new File("./").listFiles()
res3: Array[java.io.File] = Array(./dir1, ./file1)
scala> new File("./").listFiles().filter(_.isDirectory)
res4: Array[java.io.File] = Array(./dir1)
答案 1 :(得分:2)
因为“*”扩展由shell处理。试试这个。
scala> "sh -c ls -d */".!
<强>更新强>
这应该可以为您提供所需的输出。不确定底层机制。
Seq("sh", "-c", "ls -d */").!