#include <zip.h> #pragma comment(lib,"zip.lib") int main(int argc, char* argv[]) { int errorp; zip_t* zipper = zip_open(R"(C:\dev\out.zip)", ZIP_CREATE | ZIP_EXCL, &errorp); zip_source_t* source; try { ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // ファイル追加 source = zip_source_file(zipper, R"(C:\test\data\img1.jpg)", 0, 0); if (zip_file_add(zipper, R"(img1.jpg)", source, ZIP_FL_ENC_UTF_8) < 0) { //エラー処理 zip_source_free(source); throw 1; } source = zip_source_file(zipper, R"(C:\test\data\img2.jpg)", 0, 0); if (zip_file_add(zipper, R"(img2.jpg)", source, ZIP_FL_ENC_UTF_8) < 0) { //エラー処理 zip_source_free(source); throw 1; } source = zip_source_file(zipper, R"(C:\test\data\img3.jpg)", 0, 0); if (zip_file_add(zipper, R"(img3.jpg)", source, ZIP_FL_ENC_UTF_8) < 0) { //エラー処理 zip_source_free(source); throw 1; } ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // ディレクトリ追加 if (zip_dir_add(zipper, "folder", ZIP_FL_ENC_UTF_8) < 0) { //エラー処理 zip_source_free(source); throw 1; } ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// // ファイル追加 source = zip_source_file(zipper, R"(C:\test\data\dir\img4.jpg)", 0, 0); if (zip_file_add(zipper, R"(folder\img4.jpg)", source, ZIP_FL_ENC_UTF_8) < 0) { //エラー処理 zip_source_free(source); throw 1; } source = zip_source_file(zipper, R"(C:\test\data\dir\img5.jpg)", 0, 0); if (zip_file_add(zipper, R"(folder\img5.jpg)", source, ZIP_FL_ENC_UTF_8) < 0) { //エラー処理 zip_source_free(source); throw 1; } source = zip_source_file(zipper, R"(C:\test\data\dir\img6.jpg)", 0, 0); if (zip_file_add(zipper, R"(folder\img6.jpg)", source, ZIP_FL_ENC_UTF_8) < 0) { //エラー処理 zip_source_free(source); throw 1; } zip_close(zipper); } catch (...) { zip_close(zipper); } return 0; }