حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش مقایسه دو فایل در سی شارپ به سریعترین روش ممکن

خیلی اوقات پیش می آید که ما نیاز داریم دو فایل را در زبان سی شارپ با هم مقایسه کنیم. راه های خیلی زیادی وجود دارد، برای مثال می توان محتویات دو فایل را خواند و با هم مقایسه کرد، اما سرعت کار در اینجا نیز خیلی مهم است، برای مثال، اگر شما بخواهید دو فایل با حجم خیلی زیاد را با هم مقایسه کنید، در صورت خواندن محتویات فایل به صورت متن و مقایسه آن ها، زمان زیادی خواهد برد. سریعترین راه برای مقایسه دو فایل در زبان سی شارپ، بدست آوردن Hash دو فایل و مقایسه آن ها با یکدگیر است. قطعه کد زیر، آدرس دو فایل را دریافت کرده، محتویات فایل را به صورت آرایه ای از byte ها می خواند، در مرحله بعدی، بر اساس الگوریتم MD5، هش فایل ها محاسبه شده و عملیات مقایسه انجام می شود:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
public bool CompareFiles(string file1, string file2)
{
    var file1Bytes = System.IO.File.ReadAllBytes(file1);
    var file2Bytes = System.IO.File.ReadAllBytes(file2);

    var md5Hasher = System.Security.Cryptography.MD5.Create();

    var file1Hash = Convert.ToBase64String(md5Hasher.ComputeHash(file1Bytes));
    var file2Hash = Convert.ToBase64String(md5Hasher.ComputeHash(file2Bytes));

    return file1Hash == file2Hash;
}

برای استفاده از کد بالا، کافیست آدرس فایل ها را به صورت پارامتر به متد CompareFiles پاس دهید، در صورت یکسان بودن فایل ها مقدار true و در غیر اینصورت مقدار false از متد بازگردانده خواهد شد. این روش بسیار سریع بوده و می توانید بدون نگرانی از آن استفاده کنید. itpro باشید

نویسنده: حسین احمدی

وب سایت تخصصی فناوری اطلاعات ایران


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

24 خرداد 1395 این مطلب را ارسال کرده

نظرات