/// 计算指定文件的 CRC32。 public static byte[] GetCrc32(string fileName) { if (!File.Exists(fileName)) { return(Zero); } using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { Crc32 calculator = new Crc32(); byte[] result = calculator.ComputeHash(fileStream); calculator.Clear(); return(result); } }
/// 计算二进制流的 CRC32。 public static byte[] GetCrc32(byte[] bytes) { if (bytes == null) { return(Zero); } using (MemoryStream memoryStream = new MemoryStream(bytes)) { Crc32 calculator = new Crc32(); byte[] result = calculator.ComputeHash(memoryStream); calculator.Clear(); return(result); } }
/// <summary> /// 计算指定文件的CRC32值 /// </summary> public static string CRC32(string fileName) { string hashCRC32 = string.Empty; if (File.Exists(fileName)) { using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { Crc32 calculator = new Crc32(); byte[] buffer = calculator.ComputeHash(fs); calculator.Clear(); System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); for (int i = 0; i < buffer.Length; i++) { stringBuilder.Append(buffer[i].ToString("x2")); } hashCRC32 = stringBuilder.ToString(); } } return(hashCRC32); }
}//ComputeMD5 /// <summary> /// 计算指定文件的CRC32值 /// </summary> /// <param name="fileName">指定文件的完全限定名称</param> /// <returns>返回值的字符串形式</returns> public static String GetCRC32(String fileName) { String hashCRC32 = String.Empty; //检查文件是否存在,如果文件存在则进行计算,否则返回空值 if (File.Exists(fileName)) { using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { //计算文件的CSC32值 Crc32 calculator = new Crc32(); Byte[] buffer = calculator.ComputeHash(fs); calculator.Clear(); //将字节数组转换成十六进制的字符串形式 StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < buffer.Length; i++) { stringBuilder.Append(buffer[i].ToString("x2")); } hashCRC32 = stringBuilder.ToString(); }//关闭文件流 } return hashCRC32; }//ComputeCRC32