gpt4 book ai didi

ruby - 不是 gzip 格式 (Zlib::GzipFile::Error) - 在 Ruby 中解压缩 gzip 文件时

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:10 25 4
gpt4 key购买 nike

我正在尝试使用以下 Ruby 代码解压缩文件。

File.open("file_compressed.gz") do |compressed|
File.open("file_decomp","w") do |decompressed|
gz = Zlib::GzipReader.new(compressed)
result = gz.read
decompressed.write(result)
gz.close
end
end

但是我得到以下错误-

 not in gzip format (Zlib::GzipFile::Error)
./features/support/abc/abc_file.rb:44:in `initialize'

当我在 Mac 上使用 gzip 命令解压缩同一个文件时,它生成了正确的未压缩输出。对于以下命令,我可以看到 -

 $file file_compressed.gz
file_compressed.gz: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)

用Zlib创建压缩文件时是否需要放入任何文件头数据?因为当我使用 inflate 方法而不是 GzipReader 时,出现以下错误 -

 incorrect header check (Zlib::DataError)
./features/support/abc/abc_file.rb:69:in `inflate'

最佳答案

如果您使用的平台不使用 LF 分隔符,而是使用 CR+LF,您可能需要打开以二进制模式读取文件:

File.open("file_compressed.gz", "rb") do |compressed|
# ...
end

这也应该避免将输入流解释为 8 位二进制以外的任何内容。

确保使用 "wb" 作为标志以相同的方式打开输出文件。

关于ruby - 不是 gzip 格式 (Zlib::GzipFile::Error) - 在 Ruby 中解压缩 gzip 文件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12587482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com