- First Update
This commit is contained in:
69
Mitria_Minecraft_Updater/Extensions.cs
Normal file
69
Mitria_Minecraft_Updater/Extensions.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
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]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user