c#檔案比較Code

來源:互聯網
上載者:User

標籤:style   blog   io   ar   color   sp   for   on   檔案   

  我想我們很多時候想比較一個檔案裡面是否有改動,比如一個dll庫是新加了一個方法或修改了其中的方法實現,不能通過可視化的工具來比較的時候,可以用這個小工具來比較, 以下是比較檔案的代碼。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace FilesCompare{    class Program    {        static void Main(string[] args)        {            Console.WriteLine("Please type the first file.");            string firstFilePath = Console.ReadLine();            Console.WriteLine("Please type the second file.");            string secondFilePath = Console.ReadLine();            bool isEqual = CompareFiles(firstFilePath, secondFilePath);            Console.WriteLine(isEqual ? "equal" : " Not equal");            Console.Read();        }        public static bool CompareFiles(string targetFile, string updatedFile)        {            FileInfo targetFileInfo = new FileInfo(targetFile);            FileInfo updatedFileInfo = new FileInfo(updatedFile);            if (targetFileInfo.Length != updatedFileInfo.Length)            {                return false;            }            using (FileStream targetStream = File.OpenRead(targetFile))            {                using (FileStream updatedStream = File.OpenRead(updatedFile))                {                    if (targetStream.Length != updatedStream.Length)                    {                        return false;                    }                    // Using a larger buffer than the default buffer of 4 * 1024 used by FileStream.ReadByte improves performance.                    // The buffer size is based on user feedback. Based on performance results, a better buffer size may be determined.                    byte[] targetBuffer = new byte[16 * 1024];                    byte[] updatedBuffer = new byte[16 * 1024];                    int targetReadLength;                    int updatedReadLength;                    do                    {                        targetReadLength = targetStream.Read(targetBuffer, 0, targetBuffer.Length);                        updatedReadLength = updatedStream.Read(updatedBuffer, 0, updatedBuffer.Length);                        if (targetReadLength != updatedReadLength)                        {                            return false;                        }                        for (int i = 0; i < targetReadLength; ++i)                        {                            if (targetBuffer[i] != updatedBuffer[i])                            {                                return false;                            }                        }                    } while (0 < targetReadLength);                }            }            return true;        }    }}

 

c#檔案比較Code

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.