使用Scala访问目录

时间:2017-06-14 07:01:04

标签: java scala path

我正在阅读“Scala for the greatient”(第二版),我一直在讨论如何访问目录(第9.7节)。

我想按顺序打开目录中的所有文件(不包括该目录中的文件夹;这些文件是文本文件)。 书中提供的示例并不简单,因为它没有解释如何处理路径对象(java.nio.file.Path)

以下是本书中的示例(略有修改):

import java.nio.file._
val dirname: String = "./9_files_and_regular_expressions"
val entries = Files.list(Paths.get(dirname))
entries.toArray // print all the file names and consume the iterator...

val entries = Files.list(Paths.get(dirname))
try {
    entries.forEach(p => process the path p)
  } finally {
    entries.close()
  }

而不是“处理路径p”,我想打开相关目录......我在这里看到了文档https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html,但是这个包看起来很低......我是否需要转换一个首先是文件路径,然后处理这个文件对象?

有没有更简单的方法在Scala中执行这个简单的任务(目录的打开文本文件)?

1 个答案:

答案 0 :(得分:0)

您可以阅读目录并过滤其中的所有目录,并通过打开它来处理每个文件。下面是简单的例子

  val dirname: String = "/path"

  val files = new File(dirname)

  files.listFiles().filter( !_.isDirectory).map{
    file => process the file 
  }

希望这有帮助!