2010-03-23 17 views
12

में निर्देशिका को संपीड़ित करने के लिए मैं एक संपूर्ण निर्देशिका को संपीड़ित करना चाहता हूं जिसमें किसी भी ज़िप फ़ाइल में उपनिर्देशिकाएं हो सकती हैं।किसी ज़िप फ़ाइल प्रोग्राम में

मैं प्रोग्राम को एक ज़िप फ़ाइल में एक फ़ाइल को संपीड़ित करने में सक्षम हूं।

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

लेकिन क्या कोई भी रिकर्सिव फ़ंक्शन लिखने के बिना, समान कोड का उपयोग करके पूरे फ़ोल्डर को संपीड़ित करने का कोई आसान तरीका है?

उत्तर

17

DotNetZip का उपयोग करना, वहाँ एक AddDirectory है

+0

डॉटनेटजिप उत्पादन के लिए नहीं है। इसमें कुछ महत्वपूर्ण बग शामिल हैं। मैं पहले से ही भूल गया हूं, लेकिन मैंने लंबी जांच के बाद एक बार निष्कर्ष निकाला है कि वर्तमान स्थिति में यह बिल्कुल अविश्वसनीय है। – SerG

0

यह मैं क्या उपयोग करना चाहते है() ZipFile क्लास पर विधि जो आप चाहते हैं:

using (var zip = new Ionic.Zip.ZipFile()) 
{ 
    zip.AddDirectory("DirectoryOnDisk", "rootInZipFile"); 
    zip.Save("MyFile.zip"); 
} 

यह उदाहरण, और कई अन्य, available on codeplex हैं।

5
ZipFile.CreateFromDirectory(<path of folder you need to zip>, <path of zip file with .zip in the end>, CompressionLevel.Fastest, true); 
+0

'डॉटनेटजिप' और 'शार्पज़िपलिब' को ध्यान में रखते हुए दोनों छोड़ दिया गया है, एक वास्तविक .NET समाधान आदर्श है। – TEK

+1

मैं इसके लिए वाक्यविन्यास कभी याद नहीं कर सकता। System.IO.Compression.FileSystem और System.IO.Compression के लिए एक उपयोग कथन का संदर्भ जोड़ने के लिए मत भूलना। – Scott

संबंधित मुद्दे