0

我正在使用 scala-arm,我有一个类似于这个的代码:

val pathList = List("wrongPath1", "path2", "path3")
val enumerator: Enumerator[Array[Byte]] = Enumerator.outputStream { os =>
    managed(new ZipOutputStream(os)).map { zip =>
        pathList.map(pdfPath => {
            managed(new FileInputStream(pdfPath)).map(new BufferedSource(_)(Codec.ISO8859)).map { inputSrc =>
                zip.putNextEntry(new ZipEntry(documentName))
                inputSrc map { c: Char => zip.write(c) }
                zip.closeEntry()
            }.either match {
                case Left(errorList) => 
                    Logger.error("Missing doc")
                case Right(_) =>
                    Logger.error("Doc found")
            }
        })
    }.opt match {
        case None => Logger.error("ZIP FAILED")
        case Some(_) => Logger.error("ZIP SUCCEED")
    }
}

如果托管资源“FileInputStream”或“BufferedSource”失败,那么“ZipOutputStream”也会失败,我只会在控制台中看到“ZIP FAILED”消息。我从来没有看到“缺少文档”日志。

如果一个路径失败,那么我需要继续将所有其他文件添加到 zip 文件中。我怎样才能做到这一点?

4

0 回答 0