in app/controllers/Export.scala [94:121]
private def zipFolder(contentId: String, folder: Path): Path = {
val zipPath = Files.createTempFile(s"export-zip-$contentId", ".zip")
val fileOut = new FileOutputStream(zipPath.toFile)
val zipOut = new ZipOutputStream(fileOut)
Files.walkFileTree(folder, new SimpleFileVisitor[Path] {
override def visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult = {
zipOut.putNextEntry(new ZipEntry(folder.relativize(file).toString))
Files.copy(file, zipOut)
zipOut.closeEntry()
FileVisitResult.CONTINUE
}
override def preVisitDirectory(dir: Path, attrs: BasicFileAttributes): FileVisitResult = {
zipOut.putNextEntry(new ZipEntry(s"${folder.relativize(dir)}/"))
zipOut.closeEntry()
FileVisitResult.CONTINUE
}
})
zipOut.close()
fileOut.close()
zipPath
}