मेरे पास एक फ़ोल्डर है जिसमें फ़ाइलों की प्रतिलिपि बनाई गई है। मैं इसे देखना चाहता हूं और फ़ाइलों को संसाधित करता हूं जैसे ही उन्हें निर्देशिका में कॉपी किया जाता है। मैं यह पता लगा सकता हूं कि फ़ाइल में निर्देशिका कब है, चाहे मतदान (मेरे वर्तमान कार्यान्वयन) के माध्यम से या कुछ नमूने से विंडोज एपीआई का उपयोग करके कुछ परीक्षणों में मैंने ऑनलाइन पाया है।सी ++ निर्देशिका देखना - प्रतिलिपि का पता कैसे लगाया गया है
समस्या यह है कि मुझे पता चलता है कि फ़ाइल पहली बार बनाई गई है और इसकी अभी भी प्रतिलिपि बनाई जा रही है। यह मेरा प्रोग्राम बनाता है, जिसे त्रुटियों के माध्यम से फ़ाइल तक पहुंचने की आवश्यकता होती है (क्योंकि फ़ाइल अभी तक पूर्ण नहीं है)। प्रतिलिपि शुरू होने पर मैं कैसे पता लगा सकता हूं लेकिन जब प्रतिलिपि समाप्त हो गई? मैं विंडोज़ पर सी ++ का उपयोग कर रहा हूं, इसलिए उत्तर प्लेटफॉर्म पर निर्भर हो सकता है, लेकिन यदि संभव हो, तो मैं इसे मंच अज्ञेयवादी बनना पसंद करूंगा।
मैं बस कुछ ही मिनटों पहले इस सवाल का पाया: http://stackoverflow.com/questions/559659/how-to-know-a-file-is-finished-copying यह बहुत मेरी समस्या के समान है, लेकिन "अनुमोदित "समाधान सुरुचिपूर्ण और कार्यात्मक होने से बहुत दूर है। – petersaints
अपने कोड यानी, किसी प्रणाली सेवा के रूप में एक प्रशासनिक संदर्भ में चल रहा है, हो जाएगा, तो आप एक परिवर्तन पत्रिका इस्तेमाल कर सकते हैं। Http://msdn.microsoft.com/en-us/library/windows/desktop/aa363798%28v=vs.85%29.aspx –
देखें 'फ़्रेड() '/' fwrite का उपयोग करके बेवकूफ प्रतिलिपि जैसी चीजों की संभावना को ध्यान में रखते हुए() 'मुझे नहीं लगता कि एक सामान्य समाधान है। काफी मजबूत नहीं है, लेकिन शायद फाइलों के लिए खुले हैंडल को ट्रैक करके? –