2010-05-10 13 views
7

हां, मुझे पता है कि GZipStream या DeflateStream .NET Framework में सामान्य है जो संपीड़न/डिकंप्रेशन को संभालता है।बेस्ट .NET फ्रेमवर्क संपीड़न वर्ग?

मैं संपीड़ित/मेरे कार्यक्रम में कार्यों को संपीड़ित करना चाहते हैं, लेकिन

  1. काश एक .नेट फ्रेमवर्क सी # एक, न कि एक 3 पार्टी खुला स्रोत। मैं अपने कार्यक्रम में उन कॉपीराइट प्रतिबंधों के कारण उपयोग नहीं कर सकता।

  2. GZipStream और DeflateStream इतना अच्छा नहीं कर रहे हैं। उदाहरण के लिए, GZipStream 480KB पर एक फ़ाइल को संपीड़ित करता है जबकि 7Zip उसी फ़ाइल को 57 केबी के आकार में संपीड़ित करता है।

क्या माइक्रोसॉफ्ट के पास अन्य अच्छे संपीड़न विधियां हैं ???

धन्यवाद

+0

आपके सभी उत्तरों के लिए धन्यवाद। क्या मैं पूछ सकता हूं कि DeflateStream हफमैन कोडिंग का उपयोग कर रहा है या नहीं? – Jack

+0

दोनों 'DeflateStream' और' GZipStream' LZ77 एल्गोरिथ्म के संयोजन का उपयोग और Huffman कोडिंग (देखें http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx और http://msdn.microsoft.com/en-us/library/system.io.compression.deflatestream.aspx)। 'Deflate', शुद्ध संपीड़न एल्गोरिथ्म है, जबकि' GZipStream' एक CRC चेकसम भी शामिल है और * * विभिन्न संपीड़न एल्गोरिदम लिख कर बढ़ाया जा सकता है (वर्तमान .नेट फ्रेमवर्क बस को लागू करता है कि एक संपीड़न एल्गोरिथ्म)। –

उत्तर

5

GZipStream और DeflateStream विशेष रूप से संकुचित के लिए हैं, भंडारण के लिए फ़ाइलों का नहीं सामान्य संपीड़न धाराओं।

उन वर्गों के अलावा, संपीड़न नेट में नहीं ले सकता। यदि आप उच्च गुणवत्ता वाले संपीड़न चाहते हैं तो आपको किसी तृतीय पक्ष लाइब्रेरी पर जाना होगा। ओपन-सोर्स 7 ज़िप लाइब्रेरी के लिए http://www.7-zip.org/sdk.html देखें।

+0

वेब पेज बताता है कि "एलजेएमए एसडीके सार्वजनिक डोमेन में रखा गया है" जिसका अर्थ यह होना चाहिए कि यह उपयोग करने के लिए स्वतंत्र है, हालांकि आप इसे पसंद नहीं करते हैं? –

+0

डेव ने इसे सही दिशा में रखा, लेकिन स्टीफन ने उपयोग करने के लिए तैयार लिंक दिया। 7zip एल्गोरिदम (जो lzma है) का .NET कार्यान्वयन। – Oliver

+0

बिल्कुल, सभी के लिए नि: शुल्क। ओपी का कहना है कि वह "तीसरे पक्ष के खुले स्रोत" नहीं चाहते हैं। अगर लागत चिंता नहीं है, तो मुझे यकीन नहीं है कि क्या है। –

1

मैं संपीड़न दरों के बारे में कोई आंकड़ा नहीं है, लेकिन मैं बहुत सफलता के साथ साल के लिए SharpZipLib लाइब्रेरी का उपयोग कर रहा था।

2

7zip के लिए एक प्रबंधित आवरण नहीं है। लाइसेंस एलजीपीएल है ताकि आप इसे बंद स्रोत परियोजनाओं में उपयोग कर सकें। मुझे नहीं पता कि यह आपकी लाइसेंस आवश्यकताओं को फिट करता है क्योंकि आपने उन्हें नहीं बताया था।

http://sevenzipsharp.codeplex.com/

0

आप भी PInvoke साथ खुला स्रोत zlib (http://www.zlib.net/) का उपयोग कर सकते हैं, या इसके लिए एक आवरण का उपयोग करें (मैं zlib.net का उपयोग किया है - http://www.componentace.com/zlib_.NET.htm - लेकिन मेरा मानना ​​है कि यह कुछ कीड़े था)। यह प्रबंधित पुस्तकालयों से कम सुविधाजनक है, लेकिन DeflateStream/GZipStream से अधिक कुशल (जो GZipStream में अतिरिक्त सीआरसी को छोड़कर समान हैं)।

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