أسامة عرب نشر 28 مايو 2016 أرسل تقرير نشر 28 مايو 2016 ما أفضل طريقة للتعامل مع BigData او مقارنة ملف كبير مساحته تقريبا 60MB مع ملف اخر دون استغلال الرام وحدوث مشاكل Run-time. حيث لدي أكثر من 100ملف مع العلم أنّ الملفات مشفرة ولا تحتمل التجزئة؟ يمكن وضع الأمثلة بلغة C# اقتباس
0 سعيد نشر 28 مايو 2016 أرسل تقرير نشر 28 مايو 2016 يمكنك ذلك عن طريق عدم تحميل الملفين للذاكرة عند المقارنة. نفتح الملفين معًا ونقرأ بايت تلو الآخر من كل منهما ونقارن بينهما. إليك الشيفرة التالية باستخدام سي شارب التي توضّح هذه الفكرة: bool Compare(string filePath1, string filePath2) { using (FileStream file1 = File.OpenRead(filePath1)) { using (FileStream file2 = File.OpenRead(filePath2)) { if (file1.Length != file2.Length) { return false; } int count1 = -1, count2 = -1; while (count1 != -1 && count2 != -1) { count1 = file1.ReadByte(); count2 = file2.ReadByte(); if (count1 != count2) { return false; } } } } return true; } ستحتاج إلى استخدام نطاق الاسم System.IO لكي يعمل التابع Compare السابق بشكل صحيح. تقارن هذه الشيفرة بين ملفين على مستوى البايت، وعند حدوث أي اختلاف تُرجع false. وإلّا فإنّها تُرجع true إذا كان التطابق تامًّا. ستحتاج إلى تمرير مساري الملفين المراد مقارنتهما كمتغيرين إلى هذا التابع عند استدعائه. اقتباس
السؤال
أسامة عرب
ما أفضل طريقة للتعامل مع BigData او مقارنة ملف كبير مساحته تقريبا 60MB مع ملف اخر دون استغلال الرام وحدوث مشاكل Run-time. حيث لدي أكثر من 100ملف مع العلم أنّ الملفات مشفرة ولا تحتمل التجزئة؟
يمكن وضع الأمثلة بلغة C#
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.