如何在Scala中获取项目路径?

时间:2014-09-25 09:34:44

标签: eclipse file scala io path

我试图从我的Scala项目中读取一些文件,如果我使用:java.io.File(".").getCanonicalPath()我发现我当前的目录远离它们(我已经安装了Scala Eclipse的地方)。那么如何将当前目录更改为项目的根目录,或者获取项目的路径?我真的不想拥有输入文件的绝对路径。

  val PATH = raw"E:\lang\scala\progfun\src\examples\"
  def printFileContents(filename: String) {
    try {
      println("\n" + PATH + filename)
      io.Source.fromFile(PATH + filename).getLines.foreach(println)
    } catch {
      case _:Throwable => println("filename " + filename + " not found")
    }
  }

  val filenames = List("random.txt", "a.txt", "b.txt", "c.txt")
  filenames foreach printFileContents

3 个答案:

答案 0 :(得分:12)

  1. 将您的文件添加到src/main/resources/<packageName>,其中<packageName>是您的类包。
  2. 更改第val PATH = getClass.getResource("").getPath

答案 1 :(得分:0)

另一种解决方法是将您需要的路径放在用户环境变量中,并使用 sys.env 调用它(如果失败则返回异常)或 System.getenv (如果失败则返回null),例如val PATH = sys.env("ScalaProjectPath"),但问题是如果移动项目,则必须更新变量,这是我不想要的。

答案 2 :(得分:0)

new File(".").getCanonicalPath

会给你你需要的基本路径