Bazı makinelerde büyük dosyaları senkronize etmem gerekiyor. Dosyaların boyutu 6 GB'a kadar olabilir. Senkronizasyon birkaç haftada bir manuel olarak yapılacaktır. Dosya adını dikkate alamıyorum çünkü her an değişebilirler.
Planım, hedef bilgisayarda ve kaynak bilgisayarda sağlama toplamları oluşturmak ve ardından hedefte olmayan tüm dosyaları bir sağlama toplamı ile hedefe kopyalamaktır. İlk denemem şuna benzer bir şeydi:
using System.IO;
using System.Security.Cryptography;
private static string GetChecksum(string file)
{
using (FileStream stream = File.OpenRead(file))
{
SHA256Managed sha = new SHA256Managed();
byte[] checksum = sha.ComputeHash(stream);
return BitConverter.ToString(checksum).Replace("-", String.Empty);
}
}
Sorun çalışma
zamanıydı : - 1,6 GB Dosyalı SHA256 ile -> 20 dakika
- 1,6 GB Dosyalı MD5 ile -> 6,15 dakika
Sağlama toplamını almanın daha iyi - daha hızlı - bir yolu var mı (belki daha iyi bir hash işlevi ile)?