如何将Scala Directory (File, Path)转换为Java Java .io.File



我有一个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 FilePath也是如此)。

由于这个类没有scaladoc,所以很难找到如何使用它,但是遇到了这个。

这将导致以下工作(在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

最新更新