/*------------------------------------------------------------------------- * 功能描述:MD5Utils * 作者:xulisong * 创建时间: 2019/5/17 9:05:40 * 版本号:v1.0 * -------------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test.MD5Test { public class MD5Utils { /// /// 获取一个文件的MD5值 /// /// /// public static string GetMD5HashFromFile(string fileName) { try { if (!File.Exists(fileName)) return null; FileStream file = new FileStream(fileName, FileMode.Open); System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } return sb.ToString(); } catch (Exception ex) { throw; } return null; } /// /// 获取一个文件的MD5值,使用Base64格式编码 /// /// /// public static string GetMD5HashFromFileByBase64(string fileName) { try { if (!File.Exists(fileName)) return null; FileStream file = new FileStream(fileName, FileMode.Open); System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); var sb = Convert.ToBase64String(retVal); return sb.ToString(); } catch (Exception ex) { throw; } return null; } public static string GetVersionRevitFile(string fileName) { //fileName = @"E:\2019-4-14\测试4.8.rvt";//2018_4.15测试二.rvt"; fileName = @"E:\2019-4-14\测试4.8.rvt"; var usePath = @"d:\ccccc.txt"; FileStream file = new FileStream(fileName, FileMode.Open); byte[] buffer = new byte[1024*30]; var offset = 0; var useOffset = 0; var encodings = new List() {Encoding.Unicode};//,Encoding.UTF32,Encoding.UTF8,Encoding.ASCII };// Encoding.GetEncodings().Select(c=>c.GetEncoding());} Encoding useEncoding = Encoding.Unicode;// Encoding.Unicode; //file.Seek(file.Length - 1024 * 70, SeekOrigin.Begin); //useOffset = file.Read(buffer, 0, buffer.Length); //var vision = useEncoding.GetString(buffer); //var dd = vision.Contains("2017"); file.Read(buffer, 0, buffer.Length); var head = useEncoding.GetString(buffer); File.WriteAllText(usePath, head); Process.Start("notepad.exe", usePath); return ""; #region 注释 //while ((useOffset = file.Read(buffer, 0, buffer.Length)) > 0) //{ // foreach (var encodingInfo in encodings) // { // var cc = encodingInfo.GetString(buffer); // if (cc.Contains("2017") || cc.Contains("2018")) // { // useEncoding = encodingInfo; // File.WriteAllText(usePath, cc); // Process.Start("notepad.exe", usePath); // break; // } // } // offset += useOffset; //} #endregion return string.Empty;// vision; } } }