次の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で圧縮ファイルを作成するときにヘッダーデータを配置する必要がありますか?GzipReaderの代わりにinflateメソッドを使用すると、次のエラーが発生するためです-
incorrect header check (Zlib::DataError)
./features/support/abc/abc_file.rb:69:in `inflate'