AxibugEmuOnline/OtherCore/MyNes.Standard2/MyNes.Core/HelperTools.cs

175 lines
3.9 KiB
C#
Raw Permalink Normal View History

2024-07-24 15:03:33 +08:00
using System.IO;
using System.Security.Cryptography;
namespace MyNes.Core
{
public class HelperTools
{
public static string GetFileSize(string FilePath)
{
if (File.Exists(Path.GetFullPath(FilePath)))
{
FileInfo fileInfo = new FileInfo(FilePath);
string text = " Byte";
double num = fileInfo.Length;
if (fileInfo.Length >= 1024)
{
num = (double)fileInfo.Length / 1024.0;
text = " KB";
}
if (num >= 1024.0)
{
num /= 1024.0;
text = " MB";
}
if (num >= 1024.0)
{
num /= 1024.0;
text = " GB";
}
return num.ToString("F2") + text;
}
return "";
}
public static string GetSize(long size)
{
string text = " Byte";
double num = size;
if (size >= 1024)
{
num = (double)size / 1024.0;
text = " KB";
}
if (num >= 1024.0)
{
num /= 1024.0;
text = " MB";
}
if (num >= 1024.0)
{
num /= 1024.0;
text = " GB";
}
if (num < 0.0)
{
return "???";
}
return num.ToString("F2") + text;
}
public static string GetSize(ulong size)
{
string text = " Byte";
double num = size;
if (size >= 1024)
{
num = (double)size / 1024.0;
text = " KB";
}
if (num >= 1024.0)
{
num /= 1024.0;
text = " MB";
}
if (num >= 1024.0)
{
num /= 1024.0;
text = " GB";
}
if (num < 0.0)
{
return "???";
}
return num.ToString("F2") + text;
}
public static long GetSizeAsBytes(string FilePath)
{
if (File.Exists(FilePath))
{
return new FileInfo(FilePath).Length;
}
return 0L;
}
public static bool IsStringContainsNumbers(string text)
{
char[] array = text.ToCharArray();
foreach (char c in array)
{
int result = 0;
if (int.TryParse(c.ToString(), out result))
{
return true;
}
}
return false;
}
public static string CalculateCRC(string filePath)
{
if (File.Exists(filePath))
{
Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
stream.Close();
string text = "";
byte[] array = new Crc32().ComputeHash(buffer);
foreach (byte b in array)
{
text += b.ToString("x2").ToLower();
}
return text;
}
return "";
}
public static string CalculateCRC(string filePath, int bytesToSkip)
{
if (File.Exists(filePath))
{
Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
stream.Read(new byte[bytesToSkip], 0, bytesToSkip);
byte[] buffer = new byte[stream.Length - bytesToSkip];
stream.Read(buffer, 0, (int)(stream.Length - bytesToSkip));
stream.Close();
string text = "";
byte[] array = new Crc32().ComputeHash(buffer);
foreach (byte b in array)
{
text += b.ToString("x2").ToLower();
}
return text;
}
return "";
}
public static string CalculateSHA1(string filePath)
{
if (File.Exists(filePath))
{
byte[] buffer = GetBuffer(filePath);
string text = "";
byte[] array = new SHA1Managed().ComputeHash(buffer);
foreach (byte b in array)
{
text += b.ToString("x2").ToLower();
}
return text;
}
return "";
}
public static byte[] GetBuffer(string filePath)
{
Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
byte[] array = new byte[stream.Length];
stream.Read(array, 0, (int)stream.Length);
stream.Close();
return array;
}
}
}