Описание тега gzipstream
GZipStream - это класс.NET 2.0+ для сжатия и распаковки с использованием формата gzip., Включая значение проверки избыточности для обнаружения повреждения данных. Сжатый объект GZipStream, записанный в файл.gz, можно распаковать с помощью WinZip, 7zip и т. Д., Но GZipStream НЕ предоставляет функциональных возможностей для добавления или извлечения файлов из архивов.zip.
Функциональность сжатия в DeflateStream и GZipStream представлена в виде потока. Данные считываются побайтно, поэтому невозможно выполнить несколько проходов для определения наилучшего метода сжатия целых файлов или больших блоков данных. Классы DeflateStream и GZipStream лучше всего использовать для несжатых источников данных. Если исходные данные уже сжаты, использование этих классов может фактически увеличить размер потока.
//Path to directory of files to compress and decompress.
string dirpath = @"c:\users\public\reports";
DirectoryInfo di = new DirectoryInfo(dirpath);
// Compress the directory's files.
foreach (FileInfo fi in di.GetFiles()){
Compress(fi);
}
public static void Compress(FileInfo fi){
// Get the stream of the source file.
using (FileStream inFile = fi.OpenRead())
{
// Prevent compressing hidden and already compressed files.
if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden)
!= FileAttributes.Hidden & fi.Extension != ".gz")
{
// Create the compressed file.
using (FileStream outFile=File.Create(fi.FullName + ".gz"))
{
using (GZipStream Compress=new GZipStream(outFile,CompressionMode.Compress))
{
// Copy the source file into the compression stream.
inFile.CopyTo(Compress);
Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
fi.Name, fi.Length.ToString(), outFile.Length.ToString());
}
}
}
}
http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx
Не путайте с gzipoutputstream, который является классом Java.