/*-------------------------------------------------------------------------
* 功能描述: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;
}
}
}