首页 > 解决方案 > 如何从pdf文件列表中获取总页数

问题描述

我有 5 个 pdf 文件的列表,每个文件包含 20 页(假设)。我必须得到所有文件的总页数。答案将是 100 页。

我试过这个:

val totalNumberOfFile = new File(uploadFolderPath)
val fileList = totalNumberOfFile.listFiles()
val totalPages = fileList.map(file => PDDocument.load(file).getNumberOfPages).sum

它给了我所需的答案,但我的问题是:-这是在 scala 中执行此操作的最佳方法吗

标签: scaladictionary

解决方案


例如,考虑scala.util.Using自动资源管理和错误处理

scala.util.Using.Manager { use =>
  (new File(uploadFolderPath))
    .listFiles()
    .filter(_.getName.endsWith(".pdf"))
    .map(file => use(PDDocument.load(file)).getNumberOfPages)
    .sum
} match {
  case Success(sumOfPages) => println(sumOfPages)
  case Failure(error) => println("Failed to determine sum of pages", error)
}

推荐阅读