मुझे Shell32 का उपयोग करके मेरे एप्लिकेशन में कुछ फ़ाइलों को एन ज़िप करने की आवश्यकता है। अभी, मैं इसे प्राप्त करने के लिए srcFolder.CopyHere(destFolder.Items())
का उपयोग करता हूं। हालांकि, कोड की मेरी अगली पंक्ति में नव निर्मित ज़िप-फ़ाइल की आवश्यकता है। लेकिन चूंकि CopyHere
विधि Async है, तो मैं इसे कब समाप्त कर सकता हूं? अभी मैं लगभग 500 एमएस के लिए Thread.Sleep
का उपयोग करता हूं जो कि मेरे कंप्यूटर के लिए ज़िप फ़ाइल बनाने के लिए पर्याप्त है, लेकिन यह अच्छा कोड आईएमओ नहीं है।कैसे जांचें जब Shell32.Folder.CopyHere() समाप्त हो गया है
कोई विचार?
यदि आवश्यक हो तो अधिक जानकारी/कोड प्रदान किया जा सकता है।
+1 कुछ को खोजने के लिए कोशिश की समाप्त करने के लिए इंतजार कर के लिए एक और एक है, लेकिन कुछ भी नहीं मिला। सिर्फ एक नोट। यदि आपकी प्रतिलिपि बहुत अधिक समय लेती है तो उस लूप को तोड़ने के लिए कुछ सुरक्षा उपाय जोड़ें। (उदाहरण के लिए अनुपलब्ध नेटवर्क पथ) – Steve
यह समाधान विंडोज 8 पर काम करता है लेकिन विंडोज 7 पर समय से पहले आग लगती है। कोई विचार? –
एक्सेल वीबीए का उपयोग करके, हमें की आवश्यकता है 1. ज़िप करने के लिए एक टेक्स्ट फ़ाइल कॉपी करें 2. आगे की प्रक्रिया के लिए ज़िप की बाइट स्ट्रीम प्राप्त करें। 3. टेक्स्ट और ज़िप फ़ाइलों को हटाएं। चूंकि कोड हमें असामान्य और अनियमित त्रुटियां दे रहा है (हमेशा फ़ाइल पथ/ज़िप फ़ाइल पथ से संबंधित), हमने 1 और 3 के लिए कोड को दूसरे परीक्षण वातावरण में निकाला और इसे कई बार फिर से चलाया। यहां हमने FileInUse समाधान लागू किया है लेकिन किसी भी तरह से फ़ंक्शन झूठी वापसी पर रहता है और हटाए गए निष्पादन निष्पादित नहीं होते हैं। – sidnc86