在C++中,可以使用minizip庫來壓縮文件。下面是一個簡單的示例代碼,演示如何使用minizip庫來完成文件的壓縮操作:
#include <iostream>
#include "zip.h"
int main() {
const char *zipfilename = "test.zip";
const char *filename = "test.txt";
// create a new zip file
zipFile zf = zipOpen(zipfilename, APPEND_STATUS_CREATE);
if (zf == NULL) {
std::cerr << "Error opening zip file" << std::endl;
return 1;
}
// add a file to the zip file
zip_fileinfo zi = {0};
zipOpenNewFileInZip(zf, filename, &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION);
FILE *file = fopen(filename, "rb");
if (file == NULL) {
std::cerr << "Error opening file" << std::endl;
return 1;
}
char buf[1024];
int len;
while ((len = fread(buf, 1, sizeof(buf), file)) > 0) {
zipWriteInFileInZip(zf, buf, len);
}
zipCloseFileInZip(zf);
// close the zip file
if (zipClose(zf, NULL) != ZIP_OK) {
std::cerr << "Error closing zip file" << std::endl;
return 1;
}
return 0;
}
在這個示例中,我們首先創建了一個新的zip文件,并打開了一個新文件以進行寫入。然后,我們將文件內容逐塊讀取并寫入到zip文件中。最后,我們關閉了zip文件。
請注意,上面的示例僅僅是一個基本示例,實際應用中可能需要更多的錯誤處理和參數設置。你可以根據自己的需求進行修改和擴展。