Initial commit

This commit is contained in:
Stone_Red
2022-01-25 22:20:53 +01:00
commit ec6778b2be
16 changed files with 1150 additions and 0 deletions
@@ -0,0 +1,22 @@
using System.IO.Compression;
namespace HyperbolicDowloader.FileProcessing;
internal class FileCompressor
{
private static void CompressFile(string inputFilePath, string compressedFilePath)
{
using FileStream originalFileStream = File.Open(inputFilePath, FileMode.Open);
using FileStream compressedFileStream = File.Create(compressedFilePath);
using GZipStream? compressor = new GZipStream(compressedFileStream, CompressionMode.Compress);
originalFileStream.CopyTo(compressor);
}
private static void DecompressFile(string compressedFilePath, string outputFilePath)
{
using FileStream compressedFileStream = File.Open(compressedFilePath, FileMode.Open);
using FileStream outputFileStream = File.Create(outputFilePath);
using GZipStream? decompressor = new GZipStream(compressedFileStream, CompressionMode.Decompress);
decompressor.CopyTo(outputFileStream);
}
}
@@ -0,0 +1,19 @@
using System.Security.Cryptography;
namespace HyperbolicDowloader.FileProcessing;
internal class FileValidator
{
public static async Task<string> CalculateHashAsync(string filePath)
{
using SHA512 sha = SHA512.Create();
using FileStream? stream = File.OpenRead(filePath);
byte[]? hash = await sha.ComputeHashAsync(stream);
return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
public static async Task<bool> ValidateHashAsync(string filePath, string hash)
{
return await CalculateHashAsync(filePath) == hash;
}
}