使用 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

食譜無法運作?註解不清楚或過時?

開啟一個 issue貢獻這個食譜