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);
      }    
    }
  }