mirror of
https://github.com/Stone-Red-Code/HyperbolicDownloader.git
synced 2026-09-06 15:56:22 +02:00
Initial commit
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user