public byte[] GetChecksum(string fileName, Guid md5HashGuid) { byte[] hashData = null; if (HostFileManager != null) { object docData = HostFileManager.GetFileDocData(fileName); IPersistFileCheckSum fileChecksummer = docData as IPersistFileCheckSum; if (fileChecksummer != null) { byte[] tempBytes = new byte[1024]; int actualSize; fileChecksummer.CalculateCheckSum(md5HashGuid, tempBytes.Length, tempBytes, out actualSize); hashData = new byte[actualSize]; for (int i = 0; i < actualSize; i++) { hashData[i] = tempBytes[i]; } } } if (hashData == null) { HashAlgorithm MD5cryptoProvider = new MD5CryptoServiceProvider(); using (Stream fileStream = File.OpenRead(fileName)) { hashData = MD5cryptoProvider.ComputeHash(fileStream); } } return(hashData); }
public byte[] GetChecksum(string fileName, Guid hashGuid) { byte[] hashData = null; if (HostFileManager != null) { object docData = HostFileManager.GetFileDocData(fileName); IPersistFileCheckSum fileChecksummer = docData as IPersistFileCheckSum; if (fileChecksummer != null) { byte[] tempBytes = new byte[1024]; int actualSize; fileChecksummer.CalculateCheckSum(hashGuid, tempBytes.Length, tempBytes, out actualSize); hashData = new byte[actualSize]; for (int i = 0; i < actualSize; i++) { hashData[i] = tempBytes[i]; } } } if (hashData == null) { HashAlgorithm hashAlgorithm; if (hashGuid == s_hashSHA256Guid) { hashAlgorithm = SHA256.Create(); } else if (hashGuid == s_hashSHA1Guid) { hashAlgorithm = SHA1.Create(); } else if (hashGuid == s_hashMD5Guid) { hashAlgorithm = MD5.Create(); } else { hashAlgorithm = null; } if (hashAlgorithm != null) { using (Stream fileStream = File.OpenRead(fileName)) { hashData = hashAlgorithm.ComputeHash(fileStream); } } } return(hashData); }