Java:フォルダの内容をZIPに固めるコード
public static void folderToZip(Path folder, Path zip) throws IOException {
// フォルダ下のすべてのファイルを名前順に取得、フォルダは除く
List<Path>files = Files.walk(folder)
.filter(file->!Files.isDirectory(file))
.sorted()
.collect(toList());
// ZIPファイルを作成し、ファイル内容を格納
// ※漢字のファイル名のある場合は、文字コードを指定する必要があるかもしれない
try (ZipOutputStream zos = new ZipOutputStream(Files.newOutputStream(zip))) {
for (Path path: files) {
// トップフォルダの名称は除く、バックスラッシュはスラッシュに変更
String entryName =
path.subpath(1, path.getNameCount()).toString().replace('\\', '/');
ZipEntry entry = new ZipEntry(entryName);
zos.putNextEntry(entry);
Files.copy(path, zos);
}
}
}