by Yasin Kızılbakır
4. Kasım 2011 00:10
Merhaba arkadaşlar bu makalemde sizlere Dosya sıkıştırma ve çözümleme işlemini anlatacağım.Uygulama görüntüsü ekrandadır.

uygulamamızda 2 adet button ve OpenFileDialog ve SaveFile Dialog atıyoruz .Dosya seçme ve kaydetme işlemi için.Şimdi kod bloğumuza geçelim.
Ziple Buttonunu altındaki kodlar .
Openfiledioalog.ShowDialog();
Savefiledialog.ShowDialog();
//Dosyayı seçiyoruz açıyoruz şıkıştırma işlemini yapıyoruz ve sonrasında kayded
FileStream OputPutFileStreamZip = new FileStream(Savefiledialog.FileName, FileMode.Create);
GZipStream zipStream = new GZipStream(OputPutFileStreamZip, CompressionMode.Compress, true);
FileStream InputFileStreamRead = new FileStream(Openfiledioalog.FileName, FileMode.Open);
byte[] buffer = new byte[InputFileStreamRead.Length];
int count = InputFileStreamRead.Read(buffer, 0, buffer.Length);
InputFileStreamRead.Close();
zipStream.Write(buffer, 0, buffer.Length);
zipStream.Close();
OputPutFileStreamZip.Close();
Şimdi Çözümle Buttonunun altındaki kodları yapıştırıyoruz.
Openfiledioalog.ShowDialog();
//Open File dialog ile dosyamızı seçiyoruz.
Savefiledialog.ShowDialog();
FileStream InputFileStream = new FileStream(Openfiledioalog.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
//File Stream ile Doyamızı Açıyoruz sonrasında Okuyoruzç
GZipStream GZipStreamziple = new GZipStream(InputFileStream, CompressionMode.Decompress);
//gZip Stream ile Dosyamızı ,Decompress ediyoruz yani çözümlüyoruz.
int offset = 0;
int totalBytes = 0;
byte[] smallBuffer = new byte[100];
while (true)
{
int bytesRead = GZipStreamziple.Read(smallBuffer, 0, 100);
if (bytesRead == 0)
{
break;
}
offset += bytesRead;
totalBytes += bytesRead;
}
GZipStreamziple.Close();
InputFileStream = new FileStream(Openfiledioalog.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
GZipStreamziple = new GZipStream(InputFileStream, CompressionMode.Decompress);
byte[] buffer = new byte[totalBytes];
GZipStreamziple.Read(buffer, 0, totalBytes);
FileStream OputPutFileStreamZip = new FileStream(Savefiledialog.FileName, FileMode.CreateNew);
OputPutFileStreamZip.Write(buffer, 0, buffer.Length);
OputPutFileStreamZip.Close();
GZipStreamziple.Close();
InputFileStream.Close();
Bu makaleninde sonunda geldik.Birdahaki makalede görüşmek üzere.