चूंकि बड़ी gzip फाइल का विस्तार करने में काफी समय लगता हैलंबे समय (कभी-कभी आधा मिनट से अधिक), मैं विस्तार शुरू करने से पहले विस्तारित आकार जानना चाहता हूं (प्रगति रिपोर्ट उद्देश्य के लिए)। क्या वास्तव में विस्तार किए बिना इसे जानने का एक तरीका है?
अद्यतन करें:
4 जी बाइट्स (विस्तारित आकार) से बड़ी फ़ाइल के लिए,वास्तव में gzip फ़ाइल का विस्तार किए बिना आकार जानने का कोई निश्चित तरीका नहीं है। हालाँकि, 4G बाइट्स (विस्तारित आकार) से छोटी फ़ाइलों के लिए, वास्तविक विस्तारित आकार को gzip फ़ाइल के अंतिम 4 बाइट्स के रूप में संग्रहीत किया जाता है और इसे आसानी से पुनर्प्राप्त किया जा सकता है :
(1..4).inject(0) do |v, i|
v += IO.read(file_name, 1, original_size - i)[0] * (2**8) ** (4 - i)
end
उत्तर:
जवाब के लिए 2 № 1बस इस प्रश्न को बंद करना चाहता हूं क्योंकि मुझे समाधान मिल गया है। मैंने इसे ऊपर अद्यतन किया है।
उत्तर № 2 के लिए 1
मुझे नहीं लगता कि आपको एक सटीक आकार मिल सकता हैएक फ़ाइल में विभिन्न तारों की वास्तविक आवृत्तियों को जानने की आवश्यकता होगी, और आप फ़ाइल को स्कैन किए बिना ऐसा नहीं कर सकते। क्या आप वास्तविक विघटन कार्य में जा सकते हैं और यह इंगित कर सकते हैं कि यह इनपुट के माध्यम से कितनी दूर है (बनाम कितनी दूर है। उत्पादन यह है)?