77 lines
2.1 KiB
C#
77 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.IO;
|
|
using System.Security.Cryptography;
|
|
|
|
namespace MrAG
|
|
{
|
|
public class Checksum
|
|
{
|
|
//
|
|
// "This is like FABFUKAU(*W(&!@*JKHDHD"
|
|
//
|
|
// - Bromvlieg
|
|
//
|
|
|
|
//
|
|
// "Cool story, bro."
|
|
//
|
|
// - Angelo
|
|
//
|
|
|
|
public class FileInfo{
|
|
public string Path;
|
|
public string Hash;
|
|
public string LastWritten;
|
|
public string LastAccessed;
|
|
public string DateCreated;
|
|
|
|
public long Size;
|
|
|
|
public FileInfo(){}
|
|
public FileInfo(string path){
|
|
FileInfo f = MrAG.Checksum.GetInfo(path);
|
|
|
|
this.Hash = f.Hash;
|
|
this.Path = f.Path;
|
|
this.LastWritten = f.LastWritten;
|
|
this.LastAccessed = f.LastWritten;
|
|
this.DateCreated = f.DateCreated;
|
|
this.Size = f.Size;
|
|
}
|
|
}
|
|
|
|
public static FileInfo GetInfo(string Filename){
|
|
FileInfo f = new FileInfo();
|
|
|
|
System.IO.FileInfo Fileinfo = new System.IO.FileInfo(Filename);
|
|
|
|
f.Hash = MrAG.Checksum.FileHash(Filename);
|
|
|
|
f.DateCreated = Fileinfo.CreationTimeUtc.ToString();
|
|
f.LastAccessed = Fileinfo.LastAccessTimeUtc.ToString();
|
|
f.LastWritten = Fileinfo.LastWriteTimeUtc.ToString();
|
|
f.Size = Fileinfo.Length;
|
|
|
|
|
|
return f;
|
|
}
|
|
|
|
public static String FileHash(String Filename)
|
|
{
|
|
FileStream File = new FileStream(Filename, FileMode.Open);
|
|
MD5 md5 = new 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().ToLower();
|
|
}
|
|
}
|
|
}
|