使用 camlzip 解压缩单个 GZIP 压缩文件

任务

压缩 / 解压缩单个 GZIP 压缩文件

使用的 Opam 包

  • camlzip 测试版本:1.11 — 使用的库:camlzip

代码

要使用 camlzip 中的 Gzip 模块解压缩单个文件,我们打开两个文件(使用 Gzip.open_in 打开 source,使用 Out_channel.open_bin 打开 dest),并通过字节缓冲区传输字节。


let buffer_size = 4096

let gunzip source dest =
  let gz_file = Gzip.open_in source in
  let buffer = Bytes.make buffer_size '*' in
  let oc = Out_channel.open_bin dest in
  let rec aux () =
    let len = Gzip.input gz_file buffer 0 buffer_size in
    if len <> 0 then
      begin
        Out_channel.output oc buffer 0 len;
        aux ()
      end
  in
  aux ();
  Gzip.close_in gz_file;
  Out_channel.close oc

食谱无法正常工作?注释不清楚或过时?

打开问题为本食谱贡献代码