由於擴展一個大的gzip文件需要相當長的時間(有時超過半分鐘),所以我想在擴展之前知道擴展的大小(用於進度報告目的)。有沒有一種方法知道它沒有實際擴大?有沒有辦法在不實際擴展的情況下獲得擴展的gzip文件大小?
更新:
對於文件超過4G字節(擴大規模)大的,有知道的大小,而不實際擴展gzip文件沒有確切方法。然而,對於超過4G字節(擴大規模)小文件,實際尺寸擴展存儲爲最後4個字節的gzip文件,並可以很容易地檢索:
(1..4).inject(0) do |v, i|
v += IO.read(file_name, 1, original_size - i)[0] * (2**8) ** (4 - i)
end
Duplicate:http://stackoverflow.com/questions/1965567/get-the-filesize-of-very-large-gz-file-on-a-64bit-platform/1965580#1965580 – pavium 2010-01-07 07:13:08
接近重複,並在這裏包含**正確答案**:[獲取64位平臺上非常大的.gz文件的文件大小](http://stackoverflow.com/questions/1965567/get-the-filesize-of-very-大的gz-file-on-a-64bit平臺),請**參見凱文的回答** - TL; DR:不,沒有辦法,因爲ISIZE是「模32位」。對於文件> 4G,您需要解析整個文件以瞭解未壓縮的長度。 – quetzalcoatl 2017-03-19 11:08:19