क्यों जिप एक ही सामग्री के साथ कई फाइलों की तुलना में छोटी फ़ाइल को संपीड़ित करने में सक्षम है?


126

मान लीजिए कि मेरे पास 10,000 XML फाइलें हैं। अब मान लीजिए कि मैं उन्हें एक दोस्त के पास भेजना चाहता हूं। उन्हें भेजने से पहले, मैं उन्हें संक्षिप्त करना चाहूंगा।

विधि 1: उन्हें संपीड़ित न करें

परिणाम:

Resulting Size: 62 MB
Percent of initial size: 100%

विधि 2: हर फ़ाइल को ज़िप करें और उसे 10,000 xml फ़ाइलें भेजें

कमान:

for x in $(ls -1) ;  do   echo $x ; zip "$x.zip" $x ; done

परिणाम:

Resulting Size: 13 MB
Percent of initial size: 20%

विधि 3: 10,000 xml फ़ाइलों वाली एकल ज़िप बनाएँ

कमान:

zip all.zip $(ls -1)

परिणाम:

Resulting Size: 12 MB
Percent of initial size: 19%

विधि 4: फ़ाइलों को किसी एकल फ़ाइल में सम्‍मिलित करें और उसे ज़िप करें

कमान:

cat *.xml > oneFile.txt ; zip oneFile.zip oneFile.txt

परिणाम:

Resulting Size: 2 MB
Percent of initial size: 3%

प्रशन:

  • जब मैं सिर्फ एक फ़ाइल को ज़िप कर रहा हूं तो मुझे ऐसे नाटकीय रूप से बेहतर परिणाम क्यों मिलेंगे?
  • मैं विधि 2 की तुलना में पद्धति 3 का उपयोग करके बहुत बेहतर परिणाम प्राप्त करने की उम्मीद कर रहा था, लेकिन नहीं। क्यों?
  • क्या यह व्यवहार विशिष्ट है zip? अगर मैंने प्रयोग करने की कोशिश की तो gzipक्या मुझे अलग परिणाम मिलेंगे?

अतिरिक्त जानकारी:

$ zip --version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.

Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.

Compiled with gcc 4.4.4 20100525 (Red Hat 4.4.4-5) for Unix (Linux ELF) on Nov 11 2010.

Zip special compilation options:
    USE_EF_UT_TIME       (store Universal Time)
    SYMLINK_SUPPORT      (symbolic links supported)
    LARGE_FILE_SUPPORT   (can read and write large files on file system)
    ZIP64_SUPPORT        (use Zip64 to store large files in archives)
    UNICODE_SUPPORT      (store and read UTF-8 Unicode paths)
    STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
    UIDGID_NOT_16BIT     (old Unix 16-bit UID/GID extra field not used)
    [encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)

संपादित करें: मेटा डेटा

एक उत्तर बताता है कि अंतर सिस्टम मेटा डेटा है जो ज़िप में संग्रहीत है। मुझे नहीं लगता कि ऐसा हो सकता है। परीक्षण करने के लिए, मैंने निम्नलिखित कार्य किया:

for x in $(seq 10000) ; do touch $x ; done
zip allZip $(ls -1)

परिणामी ज़िप 1.4MB है। इसका मतलब यह है कि अस्पष्टीकृत स्थान का अभी भी ~ 10 एमबी है।


34
अगर मैं गलत नहीं हूं, तो यह फेनोमोना है जो लोगों को .tar.gzपूरी निर्देशिका को जिप करने के लिए विरोध करने का कारण बनता है ।
corsiKa

18
एक समान प्रश्न पहले से ही पूछा गया था, tl; डॉ ठोस 7zip अभिलेखागार का उपयोग करें।
दिमित्री ग्रिगोरीव

3
@sixtyfootersdude कुछ उत्तरों को मान्य करने के लिए एक परीक्षण के रूप में, क्या आप विधि 3 में निर्मित ज़िप को ज़िप करने का प्रयास कर सकते हैं? मुझे संदेह है कि यह फ़ाइल का आकार कम करने के लिए कुछ विधि 4 से तुलनीय होगा।
ट्रैविस

7
इसके बजाय $(ls -1), बस उपयोग *करें for x in *:; zip all.zip *
मुरु

4
यदि आप ZIP के साथ सॉलिड कम्प्रेशन करना चाहते हैं, तो यहाँ एक वर्कअराउंड है: सबसे पहले, अपनी सभी फाइलों के साथ एक असम्पीडित ZIP बनाएँ । फिर, उस ज़िप को दूसरे संपीड़ित ज़िप के अंदर रखें।
user20574

जवाबों:


129

ज़िप प्रत्येक फ़ाइल की सामग्री को अलग करते समय संपीड़ित करता है। प्रत्येक फ़ाइल की अपनी संकुचित धारा होगी। बार-बार वर्गों की पहचान करने के लिए संपीड़न एल्गोरिथ्म (आमतौर पर DEFLATE ) के भीतर समर्थन है । हालाँकि, फ़ाइलों के बीच अतिरेक खोजने के लिए ज़िप में कोई समर्थन नहीं है।

यही कारण है कि जब सामग्री कई फ़ाइलों में होती है तो बहुत अधिक स्थान होता है: यह फ़ाइल में एक ही संपीड़ित स्ट्रीम को कई बार डाल रहा है।


9
यह इसलिए भी है कि कुछ संपीड़न उपकरण आपको फ़ाइलों को अलग से या एकल इकाई के रूप में संपीड़ित करने का विकल्प देते हैं। (हालांकि आम तौर पर इसका मतलब यह भी होता है कि आपको आर्काइव से ज्यादा डीकोसमेट करना होगा, अन्यथा यदि आप इसमें सिर्फ एक फाइल देखना चाहते हैं।)
JAB

28
@ जेएबी: 7z और आरएआर जैसे संपीड़न उपकरण बड़े संपीड़न धाराओं में पूंछ करने के लिए कई फ़ाइलों को सिर के लिए "ठोस" शब्द का उपयोग करते हैं। 64MiB जैसे एक मध्यम चंक आकार के साथ, किसी एकल फ़ाइल के लिए रैंडम एक्सेस के लिए कंप्रेशन ब्लॉक की शुरुआत से 64MiB तक के डेटा को डिकम्प्रेसिंग की आवश्यकता हो सकती है। 7z LZMA कम्प्रेशन स्कीम का अधिक प्रभावी (लेकिन सेक करने के लिए धीमा) का उपयोग कर सकता है, जो ज़िप पर एक और फायदा है।
पीटर कॉर्ड्स

क्या आप कह रहे हैं कि there is no support in Zip to find redundancy between filesज़िप फ़ाइल विनिर्देश में है?
साठफुटेरसूड

6
@sixtyfootersdude, कई संपीड़न एल्गोरिदम, जैसे DEFLATE, एक धारा के रूप में काम करते हैं। धारा के एक भाग को डिकम्प्रेस करने के लिए पर्याप्त जानकारी को पुनर्प्राप्त करने के लिए, आपको उस बिंदु तक संपूर्ण स्ट्रीम को संसाधित करने की आवश्यकता है। यदि उन्होंने फ़ाइलों के बीच अतिरेक खोजने की कोशिश की, तो आपको अंतिम एक को प्राप्त करने के लिए सभी 1000 फ़ाइलों को विघटित करना होगा। यह आमतौर पर कैसे tgz काम करता है, वास्तव में है। हालाँकि, ज़िप आपको व्यक्तिगत फ़ाइलों को निकालने के लिए डिज़ाइन किया गया था। tgz को और अधिक या कुछ भी नहीं बनाया गया है
Cort Ammon

1
@sixtyfootersdude - यह सही है। Paraphrase Cort के लिए: pkzip चश्मा काम कर रहे क्रॉस-फ़ाइल का समर्थन नहीं करता है। यदि उन्होंने किया तो एक फाइल निकालने के लिए पूरे संग्रह (और हर फ़ाइल) को निकालने की आवश्यकता हो सकती है।
जेम्स स्नेल

48

ज़िप संपीड़न, संपीड़ित होने के लिए डेटा में दोहराए जाने वाले पैटर्न पर आधारित होता है, और कम्प्रेशन बेहतर हो जाता है कि फ़ाइल जितनी लंबी हो, उतने ही अधिक और लंबे पैटर्न पाए और उपयोग किए जा सकते हैं।

सरलीकृत, यदि आप एक फ़ाइल को संपीड़ित करते हैं, तो वह शब्दकोश जो मैप्स (संक्षिप्त) कोड (लंबी) पैटर्न के लिए आवश्यक रूप से प्रत्येक परिणामी ज़िप फ़ाइल में निहित है; यदि आप एक लंबी फ़ाइल को ज़िप करते हैं, तो शब्दकोश 'पुन: उपयोग' किया जाता है और सभी सामग्री में और भी अधिक प्रभावी होता है।

यदि आपकी फाइलें थोड़ी समान हैं (जैसा कि पाठ हमेशा होता है), 'शब्दकोश' का पुन: उपयोग बहुत कुशल हो जाता है, और परिणाम बहुत छोटा कुल ज़िप होता है।


3
ज़िप संग्रह और कंप्रेसिंग दोनों करता है। इसका मतलब यह है कि ज़िप प्रत्येक फ़ाइल को व्यक्तिगत रूप से संपीड़ित करता है, भले ही वे सभी एक ही ज़िप-फ़ाइल में समाप्त हों?
Gerrit

2
यह इस तरह का है - आप एक एकल फ़ाइल को हटाने की कल्पना करें, आप यह नहीं चाहेंगे कि वह एक और आधे घंटे को एक नए 'शब्दकोश' के साथ फिर से संपीड़ित करने में खर्च करे। - यह भी, शायद यह माना जाता है कि विभिन्न फाइलों को बहुत अलग 'शब्दकोशों' की आवश्यकता होती है।
अगंजू

2
मैं नहीं देखता कि यह क्यों है। यूनिक्स उपकरणों के साथ, मैं पहले एक फ़ाइल को टार के साथ संग्रहित करूँगा, फिर इसे gzip / bz2 / lzma के साथ संपीड़ित करूँगा। सम्पीडन एल्गोरिथ्म परवाह नहीं करता है कि संग्रह में कितनी फाइलें कूटबद्ध हैं। इसके अलावा, एक संपीड़ित संग्रह से किसी एक फ़ाइल को निकालना वास्तव में कितना सामान्य है? मुझे नहीं लगता कि मैंने कभी ऐसा किया है।
gerrit

4
मैं असहमत नहीं हूं, और यह शायद एक अच्छा तरीका है। मैंने ज़िप डिज़ाइन या लिखा नहीं था। मैंने अभी कहा कि यह क्या करता है ...
अगंजू

16
@gerrit इसकी अपनी समस्याएं हैं। ज़िप को आपको संग्रह में किसी भी फ़ाइल को जल्दी से एक्सेस करने की अनुमति देने के लिए डिज़ाइन किया गया है - 100 GiB UHA संग्रह से एक फ़ाइल को अनपैक करने का प्रयास करें और आप देखेंगे कि उन्होंने इस तरह क्यों चुना। इसे भी एप्लाइड करने के लिए डिज़ाइन किया गया है - आपके पास आपका बैकअप ज़िप हो सकता है और बस आवश्यकतानुसार फाइल (या रिप्लेसमेंट) जोड़ते रह सकते हैं। यह सब अभिलेखागार का उपयोग करते समय एक बड़ी मदद है। व्यापार बंद है कि यदि आप फ़ाइलों है कि बहुत समान (जो कर रहे हैं को संपीड़ित कर रहे हैं नहीं कि सभी आम), यह समानता का शोषण नहीं करना संग्रह आकार को कम करने।
लुआं

43

ज़िप में प्रत्येक फ़ाइल को अलग से संपीड़ित किया जाता है। इसके विपरीत 'सॉलिड कम्प्रेशन' है, जो फाइलें एक साथ संपीड़ित होती हैं। 7-ज़िप और आरएआर डिफ़ॉल्ट रूप से ठोस संपीड़न का उपयोग करते हैं। Gzip और Bzip2 कई फ़ाइलों को संपीड़ित नहीं कर सकते हैं इसलिए Tar का उपयोग पहले किया जाता है, ठोस संपीड़न के समान प्रभाव होता है।

जैसा कि xml फ़ाइल में समान संरचना है और शायद समान सामग्री है यदि फाइलें एक साथ संपीड़ित होती हैं तो संपीड़न अधिक होगा।

उदाहरण के लिए यदि किसी फ़ाइल में स्ट्रिंग है "<content><element name="और कंप्रेसर में पहले से ही एक और फ़ाइल में स्ट्रिंग पाया गया है, तो वह इसे एक छोटे पॉइंटर से पिछले मैच में बदल देगा, अगर कंप्रेसर 'सॉलिड कम्प्रेशन' का उपयोग नहीं करता है, तो स्ट्रिंग का पहला ऑक्युरेंस फ़ाइल को शाब्दिक के रूप में दर्ज किया जाएगा जो बड़ा है।


9

ज़िप केवल फ़ाइल की सामग्री को संग्रहीत नहीं करता है, यह फ़ाइल मेटाडेटा को भी संग्रहीत करता है जैसे कि उपयोगकर्ता आईडी, अनुमतियाँ, निर्माण और संशोधन समय और इसी तरह। यदि आपके पास एक फ़ाइल है तो आपके पास मेटाडेटा का एक सेट है; अगर आपके पास 10,000 फाइलें हैं तो आपके पास मेटाडेटा के 10,000 सेट हैं।


3
अच्छी बात है, लेकिन सिस्टम मेटा डेटा सिर्फ 1.4MB जगह ले रहा है। मेरा संपादन देखें।
साठफुटेरसुडे

1
मैं जिप एल्गोरिथ्म से परिचित नहीं हूं, लेकिन मेटाडेटा सिर्फ फ़ाइल जानकारी नहीं है, बल्कि आकार और एक शब्दकोश जैसी चीजें भी हैं, संभवतः वर्णों के वितरण पर कुछ जानकारी। एक गैर-खाली पाठ फ़ाइल पर एक शब्द गैर-शून्य होगा। शायद इसीलिए आप मेटाडाटा को अपनी खाली फाइलों की तुलना में अपनी xml फाइलों में बड़ा देखते हैं।
बेन रिचर्ड्स

यह मेरा पहला विचार था। जिप-फाइल हैडर जानकारी
वर्नरसीडी

यह केवल 2 और 3 के बीच का अंतर बताता है - 4 नहीं।
8

@Luaan नहीं, 2 और 3 दोनों में सभी 10,000 फ़ाइलों के लिए मेटाडेटा ज़िप फ़ाइल या फ़ाइलों में शामिल है, इसलिए कुल फ़ाइल आकार लगभग समान है। 4 में, केवल एक फ़ाइल के लिए मेटाडेटा है, और ज़िप फ़ाइल बहुत छोटी है।
माइक स्कॉट

7

ओपी द्वारा याद किया गया एक विकल्प यह है कि सभी फाइलों को एक साथ कंप्रेस कर दिया जाए और फिर कंप्रेशन को सेट कर दिया जाए। यह मोटे तौर पर * nix .tar.Z., .tar.gz, .tar.bz, आदि के व्यवहार को संकुचित करता है, संपीड़ित अभिलेखागार, संपीड़न को फ़ाइल सीमाओं के पार अतिरेक का दोहन करने की अनुमति देकर (जो जिप एल्गोरिथ्म एक में चलाने पर नहीं कर सकता है उत्तीर्ण करना)। यह व्यक्तिगत XML फ़ाइलों को बाद में निकालने की अनुमति देता है, लेकिन संपीड़न को अधिकतम करता है। नकारात्मक पक्ष यह है कि निष्कर्षण प्रक्रिया के लिए अतिरिक्त कदम की आवश्यकता होती है, सामान्य रूप से एक सामान्य ज़िप के लिए अस्थायी रूप से बहुत अधिक डिस्क स्थान का उपयोग करना होगा।

विंडोज को टार परिवार का विस्तार करने के लिए 7-जिप जैसे मुफ्त टूल की सर्वव्यापकता के साथ, वास्तव में कोई भी कारण नहीं है। लिनक्स, ओएस एक्स और बीएसडी सभी के रूप में .tar.gz या .tar.bz, आदि का उपयोग न करें। देशी उपकरण उन्हें हेरफेर करने के लिए।


gzip और bzip2 और भी खराब हो सकते हैं, क्योंकि वे मन में कंप्रेसिंग स्ट्रीम के साथ डिज़ाइन किए गए हैं, इसलिए उन्हें कंप्रेस किए गए डेटा को कंप्रेस करने से पहले डेटा को आउटपुट करना शुरू करना होगा।
रैकडॉन्बिनमैन

@rackandboneman: यह वह ट्रेडऑफ़ है जो आपको उस समय करनी होती है जब फ़ाइलों को उस मेमोरी से बड़ा किया जाता है जिसे आप कम्प्रेशन समय पर उपयोग करना चाहते हैं। (और इसके अलावा, विश्व स्तर पर कुछ भी खोजने के लिए सीपीयू समय की मात्रा बहुत अधिक होगी।) एक विशाल संपीड़न शब्दकोश भी विघटन के लिए आवश्यक स्मृति को बढ़ा सकता है । यह LZMA ( xz/ 7-zip) के लिए एक विकल्प है । वैसे भी, अनुकूली शब्दकोश पैटर्न पर दिखाई देने के बाद उठा सकते हैं। यह ऐसा नहीं है कि यह केवल पहले 32 k पर आधारित एक स्थिर कोडिंग सिस्टम बनाता है। यही कारण है कि गज़िप चूसना नहीं करता है।
पीटर कॉर्ड्स

यदि आप ज़िप प्रारूप के साथ रहना चाहते हैं तो मुझे यह "चाल" पसंद है। मैं आपके "7-जिप का उपयोग नहीं करने का कोई कारण नहीं" से असहमत हूं- लेकिन मैं एक गैर-तकनीकी मित्र को एक फ़ाइल भेज रहा हूं, मैं यह सुनिश्चित करना चाहता हूं कि वे इसे आसानी से खोल पाएंगे। अगर मैं एक व्यवसाय-ग्राहक को भेज रहा हूं, तो और भी अधिक।
वाहफुन्हापी

5

ज़िप संपीड़न प्रारूप स्टोर और प्रत्येक फ़ाइल को अलग से संपीड़ित करता है। यह फ़ाइलों के बीच पुनरावृत्ति का लाभ नहीं लेता है, केवल एक फ़ाइल के भीतर।

फ़ाइल को समाप्‍त करने से ज़िप सभी फ़ाइलों में पुनरावृत्ति का लाभ उठाने की अनुमति देता है, जिसके परिणामस्वरूप बहुत अधिक संपीड़न होता है।

उदाहरण के लिए, कहें कि प्रत्येक XML फ़ाइल में एक निश्चित हेडर होता है। वह शीर्ष लेख केवल प्रत्येक फ़ाइल में एक बार होता है, लेकिन कई अन्य फ़ाइलों में लगभग समान रूप से दोहराया जाता है। तरीकों 2 और 3 में जिप इसके लिए संपीड़ित नहीं कर सकता है, लेकिन विधि 4 में यह हो सकता है।


3
यह पहले से 5hrs पहले पोस्ट किए गए शीर्ष 3 उत्तरों में से एक से कैसे भिन्न है?
Xen2050

1
@ Xen2050 ज्यादा अंतर नहीं है, मुझे लगा कि मैं इसे और अधिक स्पष्ट रूप से समझा सकता हूं।
बोन्साईओक

1
@ बोनसाईऑक - फिर सही उत्तर के लिए एक टिप्पणी जोड़ें या यदि आपके पास पर्याप्त प्रतिनिधि है तो संपादित करें। यदि नहीं, लेकिन आपकी टिप्पणी स्पष्टता जोड़ती है, तो कोई और इसे उठा सकता है और पोस्ट को वैसे भी संपादित कर सकता है।
एडम डे का

@ अदमवी मैं आपकी बात देखता हूं। मेरा जवाब वर्तमान में कोई उपयोगी जानकारी नहीं जोड़ता है, हालाँकि यह यकीनन तब हुआ था जब मैंने इसे लिखा था। पहले जवाब के तहत पहले से ही उपयुक्त टिप्पणियां हैं इसलिए मुझे उन्हें जोड़ने की बात नहीं दिख रही है। क्या आप कह रहे हैं कि मुझे अपना जवाब बंद कर देना चाहिए? इसे खुला छोड़ने में क्या नुकसान है?
बोन्साईओक

4

मेटाडेटा माइक स्कॉट के बगल में संपीड़न एल्गोरिथ्म में ओवरहेड भी है।

व्यक्तिगत छोटी फ़ाइलों के एक समूह को संपीड़ित करते समय आपको बहुत ही भाग्यशाली होना होगा कि उन्हें संपीड़ित करने में सक्षम होना चाहिए कि यह सिर्फ एक संपीड़न ब्लॉक को भरने के लिए होता है। एक एकल अखंड ब्लॉक को संपीड़ित करते समय सिस्टम केवल व्यक्तिगत फ़ाइलों की 'सीमाओं' (बेहतर शब्द की कमी के लिए) को अनदेखा करते हुए, अपने एल्गोरिथ्म में डेटा को स्ट्रीम करना जारी रख सकता है।

इसके अलावा ASCII एक उच्च संपीड़न कारक है। प्लस xml अक्सर मेटाडेटा डेटा का एक बड़ा हिस्सा बनाते हुए बहुत दोहरावदार होता है जिसे xml सामग्री के रूप में इतनी आसानी से संपीड़ित नहीं किया जा सकता है।

अंत में, यदि मेमोरी सही कार्य करती है, तो zip डिक्शनरी एन्कोडिंग जैसी किसी चीज़ का उपयोग करता है, जो विशेष रूप से एससीआई फ़ाइलों पर प्रभावी है और इससे भी अधिक XML पर उनकी पुनरावृत्ति के कारण।

डेटा संपीड़न समझाया: http://mattmahoney.net/dc/dce.html


3

इस XML पर विचार करें:

<root>
  <element id="1" />
  <element id="2" /> 
  <other id="3" />
  ...
</root>

एक एक्सएमएल, एक बहुत ही दोहराए संरचना है पिन उन पुनरावृत्ति का लाभ लेता है एक शब्दकोश जिनमें से निर्माण करने के लिए पैटर्न और अधिक घटनाओं है और तब, जब संपीड़ित करने, का उपयोग करता है कम बिट्स अधिक दोहराया स्टोर करने के लिए पैटर्न कम दोहराया स्टोर करने के लिए और अधिक बिट पैटर्न

जब आप उन फ़ाइलों को संक्षिप्त करते हैं, तो स्रोत फ़ाइल (ज़िप के लिए स्रोत) बड़ी होती है, लेकिन इसमें बहुत अधिक दोहराए जाने वाले पैटर्न होते हैं क्योंकि XML की बोरिंग संरचनाओं का डिस्ट्रीब्यूशन बड़ी पूरी फ़ाइल में amortized होता है, जिससे उन पैटर्न को स्टोर करने का मौका मिलता है। कम बिट्स का उपयोग करना।

अब, यदि आप अलग-अलग XML को एक ही फाइल में जोड़ते हैं, तब भी जब उन फाइलों में पूरी तरह से अलग-अलग टैग नाम होते हैं, तो कंप्रेशन एल्गोरिदम को सभी फाइलों में सर्वश्रेष्ठ पैटर्न वितरण मिलेगा और फाइल द्वारा फाइल नहीं।

अंतत: संपीड़न एल्गोरिदम ने सबसे अच्छा दोहराया पैटर्न वितरण पाया है।


-1

7-जिप के जवाब के अलावा एक और दृष्टिकोण है जो उतना अच्छा नहीं है लेकिन परीक्षण के लायक होगा यदि किसी कारण से आप 7-का उपयोग नहीं करना चाहते हैं:

ज़िप फ़ाइल को संपीड़ित करें। अब, आम तौर पर एक जिप फाइल असंगत है, लेकिन जब इसमें बहुत सारी समरूप फाइलें होती हैं, तो कंप्रेसर इस अतिरेक को ढूंढ सकता है और इसे संपीड़ित कर सकता है। ध्यान दें कि मैंने अतिरेक के बिना बड़ी संख्या में फ़ाइलों के साथ काम करते समय एक छोटा लाभ देखा है। यदि आप वास्तव में आकार के बारे में परवाह करते हैं, तो यह कोशिश करने के लायक है कि क्या आपके पास आपके ज़िप में बहुत सारी फाइलें हैं।


जैसा कि मैंने ऊपर उल्लेख किया है कि संपीड़न के साथ पहली ज़िप करते हैं, तो ही काम करता है।
मोंटी हार्डर

@MontyHarder मैंने इसे कम्प्रेशन के साथ काम करते देखा है।
लोरेन Pechtel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.