簡體   English   中英

在C#中檢查文件真實性的最快方法

[英]Fastest way to check file authenticity in C#

我有一個正在運行的Windows服務。 下載zip文件后,應檢查文件。 目前,將使用MD5哈希值對其進行檢查。 但是對於大約1 GB的文件,這並不是真的很快。 更改此錯誤的另一個原因是,我在Windows 7 64位計算機上將文件讀入字節數組時收到內存不足的異常。

感謝您的幫助。

也許MD5看起來更簡單,但是類似的事情也應該起作用(並且與內存無關):

static bool Compare(string filePath1, string filePath2)
{
    using (FileStream file = File.OpenRead(filePath1))
    {
        using (FileStream file2 = File.OpenRead(filePath2))
        {
            if (file.Length != file2.Length)
            {
                return false;
            }

            int count;
            const int size = 0x1000000;

            var buffer = new byte[size];
            var buffer2 = new byte[size];

            while ((count = file.Read(buffer, 0, buffer.Length)) > 0)
            {
                file2.Read(buffer2, 0, buffer2.Length);

                for (int i = 0; i < count; i++)
                {
                    if (buffer[i] != buffer2[i])
                    {
                        return false;
                    }
                }
            }
        }
    }

    return true;
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM