我有一个scala.reflect.io.Directory
的实例,我想将它用作Process
的工作目录:
val workDirectory : scala.reflect.io.Directory = ???
Process("myCommand", workDirectory)
但是, Process
需要Java java.io.File
参数。如何将scala Directory
转换为Java File
?我可以看到toFile
,toAbsolute
等方法,但它们都没有返回我需要的内容(同样适用于Scala File
或Path
)。
答案 0 :(得分:1)
由于此类没有scaladoc,因此很难找到如何使用它,但遇到了this。也在StackOverflow上this。
这导致以下工作(在2.11 REPL中):
scala> import scala.reflect.io.Directory
import scala.reflect.io.Directory
scala> import java.io.File
import java.io.File
scala> val workDirectory : Directory = Directory(new File("~/temp"))
workDirectory: scala.reflect.io.Directory = ~/temp
scala> workDirectory.jfile
res0: java.io.File = ~/temp
NB:该链接表明这是实验性的,并非真正用于外部使用。因此,它可能不是最好使用的API,但是如果由于某种原因你有一个并且你没有其他方法来获得适当的File
那么似乎jfile
属性将返回基础File
。