2014-04-04 5 views
5

मेरे पास ज़िप फ़ाइलों को संभालने के लिए API DotNetZip (http://dotnetzip.codeplex.com/) का उपयोग करने वाले एप्लिकेशन को अपडेट करने का समाधान है। एक तरीका है कि कुछ फ़ोल्डरों में फ़ाइलों को ओवरराइट करना है।ExtractExistingFileAction.Overwrite किसी दिए गए निर्देशिका में फ़ाइलों को ओवरराइट नहीं कर रहा है

ZipFile zipFile = ZipFile.Read(file); 
    { 
     foreach (ZipEntry zipEntry in zipFile) 
     { 
      zipEntry.Extract(@"C:\IASD\CantinaEscolar", ExtractExistingFileAction.OverwriteSilently); 
     } 
    } 

कहाँ: @ "c: \ SDA \ CantinaEscolar" जहां जिप (files) अंदर फ़ाइलों अनज़िप कर रहे हैं।

अब, यदि निर्देशिका में पहले से ही एक ही नाम वाली फ़ाइल है जो अनपॅक किया जाएगा, तो एप्लिकेशन निर्देशिका में पहले से मौजूद फ़ाइल से संबंधित एक त्रुटि लौटा रहा है।

System.IO.IOException: The file 'c:\IASD\CantinaEscola\nomedoarquivo.exe' already exists 

OverwriteSilently इस विधि (उपयोगकर्ता की पुष्टि के अनुरोध किए बिना) चुपचाप अनज़िप फ़ाइलों पर हावी नहीं होना चाहिए?

या: क्या निर्देशिका में इस ओवरराइट को मजबूर करने का कोई तरीका है (-प्रकार एफ या कुछ)?

यदि आपके पास इस कार्य को पूरा करने के तरीके पर कोई अन्य युक्तियां हैं, तो मैं आभारी रहूंगा।

उत्तर

1

ओवरराइट लगातार फ़ाइल को ओवरराइट कर सकता है। यदि फ़ाइल केवल पढ़ने योग्य है, तो फ़ाइल पहले से मौजूद है, तो यह अपवाद नहीं फेंक देगा।

क्या यह नहीं कर सकते है:

  • अधिलेखित यदि unzipping क्रेडेंशियल्स है कि यह अनुमति नहीं देता है के तहत किया जाता है।
  • फ़ाइल उपयोग में आने पर ओवरराइट करें।

बाद वाला फ़ाइल "nomedoarquivo.exe" फ़ाइल के लिए बहुत अच्छा मामला हो सकता है। ओवरराइट करने का प्रयास करते समय यह निष्पादन योग्य चल रहा था।

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