Asıl sorununun ne olduğu konusunda emin değilim, bu yüzden birkaç düşünceyi fırlatacağım.
- Yeniden başlatılabilir kopyalar (bu kadar küçük dosya boyutlarıyla, bu büyük bir anlaşma gibi görünmüyor) ister misiniz? Eğer öyleyse, CopyFileEx with COPYFILERESTARTABLE
- 'a bakın Doğrulanabilir kopyalar mı istiyorsunuz? Sanki karmaşıkları doğrulayarak bunu yapmışsın gibi geliyor.
- Daha iyi performans mı istiyorsunuz? Sunucuda hiçbir şey yapamayacağınız gibi, zor olacak. Aksi halde, TransmitFile yardımcı olabilir.
- Sadece bir ateş ve unutma işlemi ister misiniz? Ben robocopy, ya da TeraCopy ya da bir şey işe yarayacak sanırım - ama bana biraz rahatsız görünüyor.
- Ağın ne zaman geri geldiğini bilmek ister misiniz? IsNetworkAlive cevabınızı aldı. İlk onu başarıyla kopyaladıktan hangi dosyaları takibini kaydeder Dosyalar sıkıştırılarak
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));
}
: Şu ana kadar bildiklerini dayanarak
, şu sözde kod yaklaşımım olacağını düşünüyorum ve yeniden başlatmanız gereken. Ayrıca, her iki taraftaki bazı CPU gücü pahasına, kopyanın daha hızlı (toplam dosya boyutu ve daha büyük tek dosya boyutu) daha hızlı olmasını sağlamalıdır. Basit bir toplu iş dosyası, sunucu tarafında açılır. Kullanılabilirse, SMS işlevi
Bu tam olarak BITS'nin yaptığı şeydir. – TheSmurf