使用 camlzip 和 GZIP 壓縮單一檔案
任務
壓縮 / 使用 GZIP 壓縮單一檔案
使用的 Opam 套件
- camlzip 測試版本:1.11 — 使用的函式庫:camlzip
程式碼
我們開啟兩個檔案(使用 In_channel.open_bin
開啟 source
,使用 Gzip.open_out
開啟 dest
),並透過位元組緩衝區傳輸位元組。
let buffer_size = 4096
let gzip source dest =
let gz_file = Gzip.open_out ~level:9 dest in
let buffer = Bytes.make buffer_size '*' in
let ic = In_channel.open_bin source in
let rec aux () =
let len = In_channel.input ic buffer 0 buffer_size in
if len <> 0 then
begin
Gzip.output gz_file buffer 0 len;
aux ()
end
in
aux ();
Gzip.close_out gz_file;
In_channel.close ic