Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.IO;
- using System.IO.Compression;
- using System.Threading.Tasks;
- namespace GZipComressionTestApp
- {
- class Program
- {
- static void Main(string[] args)
- {
- //var task = Task.Run(() => Compress(File.ReadAllBytes("SkypeSetup.exe"), "SkypeSetup.exe.gz"));
- //task.Wait();
- var task = Task.Run(() => Decompress(DecompressToMemoryStream("SkypeSetup.exe.gz").Result));
- task.Wait();
- }
- public static async Task Compress(byte[] buffer, string outputFile)
- {
- using (var inputStream = new MemoryStream(buffer))
- {
- await Compress(inputStream, outputFile);
- }
- }
- public static async Task Compress(Stream inputStream, string outputFile)
- {
- using (var outputStream = File.Create(outputFile))
- using (var gzipStream = new GZipStream(outputStream, CompressionMode.Compress))
- {
- await inputStream.CopyToAsync(gzipStream);
- gzipStream.Close();
- }
- }
- public static async Task<MemoryStream> DecompressToMemoryStream(string inputFile)
- {
- var outputStream = new MemoryStream();
- using (var inputStream = File.Open(inputFile, FileMode.Open, FileAccess.Read, FileShare.Read))
- using (var gzipStream = new GZipStream(inputStream, CompressionMode.Decompress))
- {
- await gzipStream.CopyToAsync(outputStream);
- gzipStream.Close();
- inputStream.Close();
- outputStream.Position = 0;
- return outputStream;
- }
- }
- public static async Task Decompress(MemoryStream memoryStream)
- {
- using (var fileStream = new FileStream("SkypeSetup.exe", FileMode.Create, FileAccess.Write, FileShare.Write))
- {
- await memoryStream.CopyToAsync(fileStream);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement