আমাকে কিছু মেশিনে বড় ফাইল সিঙ্ক করতে হবে। ফাইলগুলি আকারে 6 গিগাবাইট পর্যন্ত হতে পারে। সিঙ্কটি কয়েক সপ্তাহে ম্যানুয়ালি করা হবে। আমি ফাইলের নামটি বিবেচনায় নিতে পারি না কারণ তারা যে কোনও সময় পরিবর্তন করতে পারে।
আমার পরিকল্পনাটি হ'ল গন্তব্য পিসিতে এবং সোর্স পিসিতে চেকসাম তৈরি করা এবং তারপরে সমস্ত ফাইল একটি চেকসাম দিয়ে অনুলিপি করা, যা ইতিমধ্যে গন্তব্যে নেই, গন্তব্যে to আমার প্রথম প্রচেষ্টাটি এরকম কিছু ছিল:
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);
}
}
সমস্যাটি রানটাইমটি ছিল:
- একটি 1,6 জিবি ফাইলের সাথে SHA256 -> 20 মিনিট
- 1,6 গিগাবাইট ফাইল সহ এমডি 5 সহ -> 6.15 মিনিট
চেকসাম পাওয়ার জন্য আরও ভাল - দ্রুত - উপায় (সম্ভবত আরও ভাল হ্যাশ ফাংশন সহ) থাকতে পারে?