スポンサーリンク

libzipを試す (圧縮)

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

元データ

圧縮後

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: