मैं कुछ घंटों से संघर्ष कर रहा हूं, ज़िप फ़ोल्डर पर पासवर्ड सेट करने का प्रयास कर रहा हूं। हालाँकि, हालाँकि कई बार मैंने अलग-अलग कोड के साथ प्रयास किया, पासवर्ड ज़िप फ़ोल्डर के अंदर प्रत्येक फ़ाइल पर लागू होता है, और यह वह नहीं है जो मैं चाहता हूँ। मैं केवल फ़ोल्डर में ही पासवर्ड लागू करना चाहता हूं, और कोई पासवर्ड व्यक्तिगत फ़ाइलों के अंदर सेट नहीं किया जाना चाहिए।

यहाँ मेरा कोड है: (आपकी जानकारी के लिए, मैं DotNetZip का उपयोग कर रहा हूँ)

//Assume that there is a folder with multiple files in it at C:\\ExampleFolder
using (Ionic.Zip.ZipFile z = Ionic.Zip.ZipFile())
{
    z.Password = "MyPassword";            //Setting the password
    z.AddDirectory(@"C:\\ExampleFolder"); //I thought the directory added here should be pw-protected
    z.Save(@"C:\\FinalResult.zip");       //Create the pw-protected zip folder
}

हालाँकि, जब मैं इस प्रोग्राम को चलाता हूँ, तो यह FinalResult.zip नाम का एक ज़िप फ़ोल्डर बनाता है, लेकिन वह ज़िप फ़ोल्डर पासवर्ड से सुरक्षित नहीं होता है। उस ज़िप फ़ोल्डर के अंदर की सभी फाइलें पासवर्ड से सुरक्षित हैं। यदि ऐसा है, तो उपयोगकर्ता को हर बार किसी फ़ाइल को खोलने का प्रयास करने पर पासवर्ड दर्ज करना होगा, जो कि असुविधाजनक है। मैं चाहता हूं कि उपयोगकर्ता को केवल एक बार पासवर्ड दर्ज करना पड़े जब वे ज़िप फ़ोल्डर खोलने का प्रयास करें। क्या कोई मुझे बता सकता है कि यह कोड वह क्यों नहीं करता जो मैं हासिल करना चाहता हूं?

1
Wang Dang 18 अगस्त 2020, 23:20

1 उत्तर

सबसे बढ़िया उत्तर

पासवर्ड वास्तव में सही ढंग से काम कर रहा है:

ज़िप संग्रह लिखते समय, यह पासवर्ड प्रविष्टियों पर लागू होता है, न कि स्वयं ज़िप संग्रह पर। यह किसी भी ZipEntry पर लागू होता है जिसे बाद में AddFile, AddDirectory, AddEntry, या किसी एक का उपयोग करके ZipFile में जोड़ा जाता है AddItem विधियों, आदि। ज़िप संग्रह को पढ़ते समय, यह गुण ZipFile वर्ग पर किसी एक एक्स्ट्रेक्ट विधियों का उपयोग करके ZipFile से बाद में निकाली गई किसी भी प्रविष्टि पर लागू होता है।

DotNetZip . में Password के दस्तावेज़ीकरण में टिप्पणी अनुभाग देखें

https://documentation.help/DotNetZip/4444d7a5-3324-8af9-3ed3-5bf6551d3cd1.htm

2
Alejandro 18 अगस्त 2020, 20:57