11
我使用下面的代碼來計算文件的MD5SUM -計算MD5SUM
byte[] b = System.IO.File.ReadAllBytes(file);
string sum = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(b));
也能正常工作正常,但如果我遇到一個大文件(〜1GB) - 例如一個ISO映像或一個DVD VOB文件 - 我得到一個內存不足異常。
雖然,我能夠在大約10secs中計算相同文件的cygwin中的MD5SUM。
請建議我如何才能在我的程序中使用大文件。
感謝
是的。 Mono實際上通過迭代讀入一個字節來實現ComputeHash(Stream)[4096](http://anonsvn.mono-project.com/viewvc/trunk/mcs/class/corlib/System.Security.Cryptography/HashAlgorithm.cs?修訂= 107126&視圖=標記)。我希望MS的實施非常相似。 一般來說,使用ReadAllBytes可能意味着你做錯了什麼。即使對於短文件,使用Stream也更加優雅。 – 2009-04-30 07:35:04