如何将Scala目录(文件,路径)转换为Java java.io.File

时间:2015-08-22 12:30:32

标签: java scala

我有一个scala.reflect.io.Directory的实例,我想将它用作Process的工作目录:

val workDirectory : scala.reflect.io.Directory = ???
Process("myCommand", workDirectory)
但是,

Process需要Java java.io.File参数。如何将scala Directory转换为Java File?我可以看到toFiletoAbsolute等方法,但它们都没有返回我需要的内容(同样适用于Scala FilePath)。

1 个答案:

答案 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