मैं एक ज़िपित फ़ाइल को प्रोग्रामेटिक रूप से अनज़िप करने की कोशिश कर रहा हूं।
मैंने System.IO.Compression.GZipStream
.NET में कक्षा का उपयोग करने की कोशिश की है , लेकिन जब मेरा ऐप चलता है (वास्तव में एक इकाई परीक्षण) तो मुझे यह अपवाद मिलता है:
System.IO.InvalidDataException: GZip हैडर में मैजिक नंबर सही नहीं है। सुनिश्चित करें कि आप GZip स्ट्रीम में गुजर रहे हैं।
मुझे अब एहसास हुआ कि एक .zip
फाइल एक फाइल के समान नहीं है .gz
, और यह GZip
एक जैसी नहीं है Zip
।
हालाँकि, चूंकि मैं ज़िप्ड फ़ाइल को मैन्युअल रूप से डबल क्लिक करके फ़ाइल निकालने में सक्षम हूं और फिर "सभी फाइलें निकालें" -बटन पर क्लिक करते हुए, मुझे लगता है कि कोड में भी ऐसा करने का एक तरीका होना चाहिए।
इसलिए मैंने Process.Start()
इनपुट के रूप में ज़िपित फ़ाइल के पथ के साथ उपयोग करने की कोशिश की है । यह मेरे ऐप को ज़िप की गई फ़ाइल में सामग्री दिखाने वाली विंडो खोलने का कारण बनता है। यह सब ठीक है, लेकिन एप्लिकेशन को "सभी फाइलें निकालें" -बटन पर क्लिक करने के लिए आसपास के सर्वर पर स्थापित किया जाएगा।
तो, ज़िपित फ़ाइलों में फ़ाइलों को निकालने के लिए मुझे अपना ऐप कैसे मिलेगा?
या इसे करने का एक और तरीका है? मैं किसी भी तीसरे पक्ष के पुस्तकालयों या एप्लिकेशन को डाउनलोड किए बिना इसे कोड में करना पसंद करता हूं; सुरक्षा विभाग उस बारे में बहुत कल्पना नहीं कर रहा है ...