<RAD />الملاحظات
FILES · HASHING

اكتشاف الملفات المكررة: الحجم أولًا ثم SHA-256

فكرة بسيطة تقلل كمية الملفات التي تحتاج إلى قراءة كاملة وحساب hash لها.

عند فحص مجلد كبير بحثًا عن ملفات متطابقة، يمكن حساب SHA-256 لكل ملف مباشرة، لكن هذا يعني قراءة محتوى كل ملف حتى لو كان من الواضح منذ البداية أنه لا يساوي أي ملف آخر. توجد خطوة أرخص يمكن تنفيذها أولًا: مقارنة الحجم.

المرحلة الأولى: Group by size

ملف حجمه 5 MB لا يمكن أن يكون متطابقًا byte-for-byte مع ملف حجمه 7 MB. لذلك يمكن قراءة metadata الخاصة بالحجم وتجميع الملفات ذات الحجم نفسه. أي مجموعة تحتوي ملفًا واحدًا فقط تُستبعد فورًا من مرحلة hashing.

المرحلة الثانية: SHA-256 للمرشحين

بعد فلترة الحجم، نحسب SHA-256 فقط للملفات الموجودة داخل مجموعات لديها أكثر من ملف. إذا تطابق الحجم وتطابق الـhash، يصبح لدينا دليل قوي جدًا على تطابق المحتوى، ويمكن عرض هذه الملفات ضمن مجموعة مكررة.

الخلاصة: الحجم ليس إثباتًا على التطابق، لكنه فلتر سريع. SHA-256 هو مرحلة التحقق من المحتوى بعد تقليل عدد المرشحين.

لماذا هذه الطريقة مناسبة لتطبيق سطح مكتب؟

  • تقلل قراءة الملفات غير الضرورية.
  • تجعل التقدم في الفحص أسهل في التفسير للمستخدم.
  • تسمح بإظهار مجموعات التكرار والمساحة المهدورة بصورة منظمة.
  • تنسجم مع مبدأ المعاينة قبل أي عملية حذف أو تغيير.

هذه الفكرة مستخدمة في مشروع Smart File Manager المنشور ضمن أعمالي، ويمكن مراجعة بنية المشروع والكود من مستودع GitHub المرتبط به.