分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
zlib開源庫採用的是deflate壓縮演算法,已經不支援加密功能,實際上功能還存在於**中,採用minizip可以支援對zip檔案的加解密。
zlib目前最新的是1.
2 .7,minizip最新的版本是1.1。
採用zlib可以解壓縮任何zip檔案,也可以壓縮成zip檔案被winzip/winrar/7z等工具開啟。
注意:如果採用了加密功能,zlib加密的檔案只能被zlib解開,winrar/winzip打不開,7z可以開啟,但其它工具加密的zip檔案zlib可以開啟,令人費解,
長期不支援加密失去維護造成的。
注:已經確認呼叫
zipopennewfileinzip4前需要用
crc32函式計算檔案crc值,當做引數傳入函式即可,具體**參照minizip.c檔案。
採用minizip進行檔案壓縮:
如果要支援加密,需要遮蔽unzip.c中的nouncrypt巨集定義。
建立壓縮流
zipfile zf=
null
;zf = zipopen64(zipfile,
0 );
壓縮檔案
zip_fileinfo fileinfo;
zeromemory(&fileinfo,
sizeof
(fileinfo));
zipopennewfileinzip4(zf,buf, &fileinfo,
null
, 0
, null
, 0
, null
, z_deflated,level,
0 , -max_wbits, def_mem_level,
z_default_strategy,password,
0 ,
0 , zip_gpbf_language_encoding_flag);
注意buf為檔名,password為空時需要給null,level為壓縮比,9為最高,0最低。
寫入壓縮檔案
zipwriteinfileinzip(zf,data,size)
關閉當前檔案
zipclosefileinzip(zf);
關閉流zipclose(zf,
0 );
採用minizip進行檔案解壓縮:
unzfile uf=
null
;unz_global_info64 gi;
unz_file_info64 fileinfo;
開啟zip檔案
uf = unzopen64(szzipfile);
result=unzgetglobalinfo64(uf, &gi); if
(result != unz_ok)
throw
「檔案錯誤」;
迴圈解壓縮檔案
for (
inti=
0 ;i
給我老師的人工智慧教程打call!
windows環境下編譯zlib及使用
系統 win10 x64 ide vs2017 此時版本 zlib 1.2.11.zip 2.解壓 3.進入 contrib vstudio 子目錄,找到對應版本的vs開啟,然後編譯 備註 1 如果編譯過程中出現 fatal error lnk1281 無法生成 safeseh 映像 的錯誤,則將該...
Linux環境上zlib1 2 8安裝及配置
zlib是提供 資料壓縮 用的函式庫,由jean loup gailly與mark adler所開發,初版0.9版在1995年5月1日發表。zlib使用deflate演算法,最初是為libpng函式庫所寫的,後來普遍為許多軟體所使用。此函式庫為自由軟體,使用zlib授權。截至2007年3月,zlib...
python2 7及後面缺少zlib包解決辦法
python 缺少zlib 解決辦法 如何安裝python我這裡就不贅述了,一般linux系統會自帶乙個python,不過一般版本不會太高,需要安裝最高版本的,推薦有gcc模式 去安裝 一 先去 zlib 原始碼檔案,如 二 安裝 zlib tar xzvf zlib 1.2.8.tar.gz cd...