मैंने सी # (.NET 2.0 फ्रेमवर्क) में प्रतिलिपि उपयोगिता बनाई है जो फ़ाइलों, निर्देशिकाओं और रिकर्सिव उप निर्देशिका आदि की प्रतिलिपि बनाता है। प्रोग्राम में एक जीयूआई है जो वर्तमान फ़ाइल की प्रतिलिपि बनाई गई है, वर्तमान फ़ाइल संख्या (अनुक्रम), प्रतिलिपि बनाने के लिए फाइलों की कुल संख्या और कॉपी ऑपरेशन के लिए प्रतिशत पूरा किया गया। एक प्रगति पट्टी भी है, जो वर्तमान फ़ाइल/कुल फाइलों पर आधारित है।क्या मैं .NET में FileInfo.CopyTo() का उपयोग कर फ़ाइल कॉपी प्रगति दिखा सकता हूं?
मेरी समस्या बड़ी फ़ाइलों की प्रतिलिपि बनाने से संबंधित है। मैं एक बड़ी फ़ाइल की कुल प्रति प्रगति को इंगित करने का कोई तरीका नहीं ढूंढ पाया (मेरी वर्तमान क्लास संरचना का उपयोग करके जो FileInfo.CopyTo विधि का उपयोग करता है)। एक कामकाज के रूप में मैंने फाइल कॉपी ऑपरेशंस और जीयूआई डिस्प्ले को अपने स्वयं के थ्रेड में अलग कर दिया है और यह दिखाने के लिए एक दृश्य क्यू सेट किया है कि काम किया जा रहा है। कम से कम उपयोगकर्ता को पता है कि कार्यक्रम जमे हुए नहीं है और अभी भी फाइलों की प्रतिलिपि बना रहा है।
यह बाइट्स की कुल संख्या के आधार पर प्रगति दिखाने में सक्षम होना चाहिए या फ़ाइलइन्फो.कोपीटो विधि से आग लगने वाली कुछ प्रकार की घटना है जो वर्तमान फ़ाइल से कॉपी की गई बाइट्स की कुल संख्या इंगित करती है।
मुझे FileInfo.Length संपत्ति के बारे में पता है, इसलिए मुझे यकीन है कि मैकगुइवर मेरा स्वयं का कार्यक्रम है जो इस पर आधारित है और अपडेट पढ़ने वाले चीजों के जीयूआई पक्ष पर हैंडलर है (शायद किसी प्रकार के टाइमर का उपयोग कर गंतव्य ऑब्जेक्ट की FileInfo.Length संपत्ति की जांच करना?)।
क्या कोई ऐसा करने का तरीका जानता है जिसे मैं देख रहा हूं। अगर मैं इससे बच सकता हूं, तो मैं अपनी कक्षा को एक स्ट्रीम के माध्यम से बाइट्स कॉपी करने के लिए फिर से लिखना नहीं चाहूंगा और इसे इस तरह ट्रैक करूँगा (हालांकि मुझे लगता है कि मैं उस मार्ग पर जाकर फंस सकता हूं)।
अग्रिम धन्यवाद
पुनश्च - मैं अब के लिए .NET 2.0 ढांचे के साथ अटक कर रहा हूँ, इसलिए किसी भी समाधान है कि> = 3.0 में उपलब्ध सुविधाओं की आवश्यकता है सिर्फ मेरे लिए एक विकल्प नहीं हैं।
पीपीएस - मैं किसी भी .NET भाषा विविधता में समाधान के लिए खुला हूं, न केवल सी #।
कोई पूर्ण नमूना स्रोत कोड? – Kiquenet