Skip to content

Instantly share code, notes, and snippets.

@BrzVlad
Created July 27, 2019 10:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BrzVlad/33a5eb6f0fd004eaf91f8d80eb0cf9ec to your computer and use it in GitHub Desktop.
Save BrzVlad/33a5eb6f0fd004eaf91f8d80eb0cf9ec to your computer and use it in GitHub Desktop.
using System;
using System.IO;
using System.IO.Compression;
public class Program
{
static string directoryPath = ".";
public static void Main()
{
for (int i = 0; i < 10000; i++) {
DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);
Compress(directorySelected);
foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.cmp"))
{
Decompress(fileToDecompress);
}
if (i % 100 == 0)
Console.WriteLine(GC.GetTotalMemory(true));
}
}
public static void Compress(DirectoryInfo directorySelected)
{
foreach (FileInfo file in directorySelected.GetFiles("*.xml"))
using (FileStream originalFileStream = file.OpenRead())
{
if ((File.GetAttributes(file.FullName) & FileAttributes.Hidden)
!= FileAttributes.Hidden & file.Extension != ".cmp")
{
using (FileStream compressedFileStream = File.Create(file.FullName + ".cmp"))
{
DeflateStream compressionStream = new DeflateStream(compressedFileStream, CompressionMode.Compress);
originalFileStream.CopyTo(compressionStream);
// compressionStream.Dispose ();
}
FileInfo info = new FileInfo(directoryPath + "/" + file.Name + ".cmp");
}
}
}
public static void Decompress(FileInfo fileToDecompress)
{
using (FileStream originalFileStream = fileToDecompress.OpenRead())
{
string currentFileName = fileToDecompress.FullName;
string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);
using (FileStream decompressedFileStream = File.Create(newFileName))
{
DeflateStream decompressionStream = new DeflateStream(originalFileStream, CompressionMode.Decompress);
decompressionStream.CopyTo(decompressedFileStream);
// decompressionStream.Dispose ();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment