1
0
mirror of synced 2025-02-25 14:34:45 +01:00

77 lines
2.7 KiB
C#
Raw Normal View History

2023-09-18 19:51:03 +03:00
using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.Tar;
2023-07-17 17:26:25 +03:00
using System.Diagnostics;
2023-07-17 11:20:00 +03:00
using System.IO.Compression;
2023-09-18 19:51:03 +03:00
using System.Text;
using static System.Net.Mime.MediaTypeNames;
2023-07-17 11:20:00 +03:00
namespace TaikoSoundEditor
{
internal class GZ
{
2023-09-18 18:53:43 +03:00
public static string DecompressBytes(byte[] bytes)
{
Logger.Info("GZ Decompressing bytes");
using MemoryStream ms = new MemoryStream(bytes);
using GZipStream decompressionStream = new GZipStream(ms, CompressionMode.Decompress);
using StreamReader reader = new StreamReader(decompressionStream);
return reader.ReadToEnd();
}
2023-07-17 11:20:00 +03:00
public static string DecompressString(string gzPath)
{
2023-07-19 08:10:25 +03:00
Logger.Info("GZ Decompressing string");
2023-07-17 11:20:00 +03:00
using FileStream originalFileStream = File.OpenRead(gzPath);
using GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress);
using StreamReader reader = new StreamReader(decompressionStream);
return reader.ReadToEnd();
}
public static byte[] DecompressBytes(string gzPath)
{
2023-07-19 08:10:25 +03:00
Logger.Info("GZ Decompressing bytes");
2023-07-17 11:20:00 +03:00
using FileStream originalFileStream = File.OpenRead(gzPath);
using GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress);
using MemoryStream ms = new MemoryStream();
decompressionStream.CopyTo(ms);
return ms.ToArray();
}
public static byte[] CompressToBytes(string content)
{
2023-07-19 08:10:25 +03:00
Logger.Info("GZ Compressing bytes");
2023-09-30 19:13:04 +03:00
var uncompressed = Encoding.UTF8.GetBytes(content);
using (MemoryStream outStream = new MemoryStream())
2023-07-17 11:20:00 +03:00
{
2023-09-30 19:13:04 +03:00
using (GZipOutputStream gzoStream = new GZipOutputStream(outStream))
{
gzoStream.SetLevel(5);
gzoStream.Write(uncompressed, 0, uncompressed.Length);
}
return outStream.ToArray();
2023-07-17 11:20:00 +03:00
}
}
2023-07-17 17:26:25 +03:00
public static string CompressToFile(string fileName, string content)
2023-07-17 11:20:00 +03:00
{
2023-07-19 08:10:25 +03:00
Logger.Info("GZ Compressing file");
2023-09-18 19:51:03 +03:00
var uncompressed = Encoding.UTF8.GetBytes(content);
using (MemoryStream outStream = new MemoryStream())
{
using (GZipOutputStream gzoStream = new GZipOutputStream(outStream))
{
gzoStream.SetLevel(5);
gzoStream.Write(uncompressed, 0, uncompressed.Length);
}
File.WriteAllBytes(fileName, outStream.ToArray());
}
2023-09-30 19:13:04 +03:00
return "";
2023-07-17 11:20:00 +03:00
}
}
}