69 lines
2.5 KiB
C#
69 lines
2.5 KiB
C#
using System.IO;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
namespace Mitria_Minecraft_Updater
|
|
{
|
|
public static class Extensions
|
|
{
|
|
public static void DirectoryCheckCrate(string path)
|
|
{
|
|
if (!System.IO.Directory.Exists(path))
|
|
{
|
|
System.IO.Directory.CreateDirectory(path);
|
|
}
|
|
}
|
|
|
|
public static void DeleteEmptyDirectory(string path)
|
|
{
|
|
if (!System.IO.Directory.Exists(path))
|
|
{
|
|
return;
|
|
}
|
|
string[] directorys = System.IO.Directory.GetDirectories(path, "*", System.IO.SearchOption.AllDirectories);
|
|
for (int i = directorys.Length; i > 0; i--)
|
|
{
|
|
int countDirectory = System.IO.Directory.GetDirectories(directorys[i - 1], "*", System.IO.SearchOption.AllDirectories).Length;
|
|
int countFiles = System.IO.Directory.GetFiles(directorys[i - 1], "*", System.IO.SearchOption.AllDirectories).Length;
|
|
if (countDirectory + countFiles == 0)
|
|
{
|
|
System.IO.Directory.Delete(directorys[i - 1],true);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static string[] GetDirectoriesRelativePath(string path, string searchPattern, System.IO.SearchOption searchOption)
|
|
{
|
|
string[] directories = System.IO.Directory.GetDirectories(path, searchPattern, searchOption);
|
|
for (int i = 0; i < directories.Length; i++)
|
|
{
|
|
directories[i] = System.IO.Path.GetRelativePath(path, directories[i]);
|
|
}
|
|
|
|
return directories;
|
|
}
|
|
|
|
public static string[] GetFilesRelativePath(string path, string searchPattern, System.IO.SearchOption searchOption)
|
|
{
|
|
string[] files = System.IO.Directory.GetFiles(path, searchPattern, searchOption);
|
|
for (int i = 0; i < files.Length; i++)
|
|
{
|
|
files[i] = System.IO.Path.GetRelativePath(path, files[i]);
|
|
}
|
|
|
|
return files;
|
|
}
|
|
|
|
public static string GetFileHash(string filePath)
|
|
{
|
|
FileInfo fileInfo = new FileInfo(filePath);
|
|
byte[] hashCode = MD5.Create().ComputeHash(fileInfo.OpenRead());
|
|
StringBuilder hashStringBuilder = new StringBuilder();
|
|
foreach (byte b in hashCode)
|
|
{
|
|
hashStringBuilder.AppendFormat("{0:x2}", b);
|
|
}
|
|
return hashStringBuilder.ToString();
|
|
}
|
|
}
|
|
} |