123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /*-------------------------------------------------------------------------
- * 功能描述: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
- {
- /// <summary>
- /// 获取一个文件的MD5值
- /// </summary>
- /// <param name="fileName"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 获取一个文件的MD5值,使用Base64格式编码
- /// </summary>
- /// <param name="fileName"></param>
- /// <returns></returns>
- 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>() {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;
- }
- }
- }
|