की पहचान करें मैं वर्तमान में मेरी ज़िप फ़ाइल प्रविष्टियों को संभालने के लिए SharpZip एपीआई का उपयोग कर रहा हूं। यह ज़िप और अनजिपिंग के लिए शानदार काम करता है। हालांकि, मुझे यह पहचानने में समस्या हो रही है कि फ़ाइल एक ज़िप है या नहीं। मुझे यह जानने की ज़रूरत है कि फ़ाइल स्ट्रीम को डिकंप्रेसर किया जा सकता है या नहीं। मूल रूप से मैंनेसी # .नेट ज़िप फ़ाइल
FileStream lFileStreamIn = File.OpenRead(mSourceFile);
lZipFile = new ZipFile(lFileStreamIn);
ZipInputStream lZipStreamTester = new ZipInputStream(lFileStreamIn, mBufferSize);// not working
lZipStreamTester.Read(lBuffer, 0, 0);
if (lZipStreamTester.CanDecompressEntry)
{
LZipStreamTester हर बार शून्य हो जाता है और यदि कथन विफल हो जाता है। मैंने इसे बफर के साथ/बिना कोशिश की। क्या कोई इस बारे में कोई अंतर्दृष्टि दे सकता है? मुझे पता है कि मैं फ़ाइल एक्सटेंशन की जांच कर सकता हूं। मुझे ऐसा कुछ चाहिए जो उससे अधिक निश्चित है। मुझे यह भी पता है कि ज़िप में एक जादू # (पीके कुछ है), लेकिन यह गारंटी नहीं है कि यह हमेशा वहां रहेगा क्योंकि प्रारूप की आवश्यकता नहीं है।
इसके अलावा मैं के बारे में .net 4.5 देशी ज़िप समर्थन होने तो मेरी परियोजना sharpzip के बजाय कि में माइग्रेट कर सकते हैं पढ़ा लेकिन मैं अभी भी जरूरत है एक विधि/परम यहाँ CanDecompressEntry के समान नहीं देखा: http://msdn.microsoft.com/en-us/library/3z72378a%28v=vs.110%29
मेरे अंतिम उपाय कोशिश करने का प्रयास करें और फ़ाइल पर अनजिप करने का प्रयास करें।
मेरे सवाल का सबसे सरल रूप में इस "उपरोक्त कोड में, क्यों अगर बयान झूठे वापसी है?" है –