मुझे आपकी वास्तविक समस्या के बारे में अस्पष्ट नहीं है, इसलिए मैं कुछ विचार फेंक दूंगा।
- क्या आप पुनरारंभ करने योग्य प्रतियां (ऐसे छोटे फ़ाइल आकारों के साथ, ऐसा लगता है कि यह एक सौदा का बड़ा नहीं होगा)? यदि ऐसा है, तो CopyFileEx with COPYFILERESTARTABLE
- देखें क्या आप सत्यापित करने योग्य प्रतियां चाहते हैं? लगता है कि आपके पास हैश की पुष्टि करके पहले से ही है।
- क्या आप बेहतर प्रदर्शन चाहते हैं? यह कठिन होगा, क्योंकि ऐसा लगता है कि आप सर्वर पर कुछ भी नहीं चला सकते हैं। अन्यथा, TransmitFile मदद कर सकता है।
- क्या आप सिर्फ आग चाहते हैं और ऑपरेशन भूल जाते हैं? मुझे लगता है कि रोबोकॉपी को खोलना, या TeraCopy या कुछ काम करेगा - लेकिन यह मेरे लिए थोड़ा हैकी लगता है।
- क्या आप जानना चाहते हैं कि नेटवर्क कब वापस आता है? IsNetworkAlive आपका उत्तर है।
मैं अब तक क्या पता के आधार पर, मुझे लगता है कि निम्नलिखित छद्म कोड मेरा दृष्टिकोण होगा:
sourceFile = Compress("*.*");
destFile = "X:\files.zip";
int copyFlags = COPYFILEFAILIFEXISTS | COPYFILERESTARTABLE;
while (CopyFileEx(sourceFile, destFile, null, null, false, copyFlags) == 0) {
do {
// optionally, increment a failed counter to break out at some point
Sleep(1000);
while (!IsNetworkAlive(NETWORKALIVELAN));
}
फ़ाइलों को संपीड़ित पहले आप ट्रैकिंग फ़ाइलें जिनमें से आप सफलतापूर्वक कॉपी किया बचाता है, और जिसे आपको पुनरारंभ करने की आवश्यकता है। यह दोनों तरफ कुछ सीपीयू पावर की कीमत पर प्रतिलिपि को तेज (छोटे कुल फ़ाइल आकार, और बड़े एकल फ़ाइल आकार) को भी जाना चाहिए। एक साधारण बैच फ़ाइल इसे सर्वर की तरफ डिकंप्रेस कर सकती है।
स्रोत
2008-08-21 10:54:09
बिलकुल ठीक यही है। – TheSmurf