Asp.Net Zip ve Unzip İşlemleri 2 – Dosya Yükleme ve Sıkıştırma

Asp.net ile Zip’li Dosya Yükleme ve Açma işleminden sonra şimdide sıra geldi dosya yükleme ve sıkıştırma işlemine bunun için yine SharpZipLib kütüphanesini kullanacağız. SharpZipLib kütüphanesi ile sıkıştırılacak olan dosyalara açıklama ekleyebilir aynı zamanda şifrede koyabiliriz :) hemen örneğimize geçelim ama SharpZipLib kütüphanesini referans olarak eklemeyi unutmayın nasıldı diyorsanız Zip’li Dosya Yükleme ve Açma konusuna tekrar göz atın.
Sayfamıza birer tane FileUpload,Label ve Button ekliyoruz. yüklenen dosyaları kaydetmek için dosyalar isimli bir klasör ekliyoruz

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Aspnetornekleri.com Dosya Yükleme ve Sıkıştırma</title>
</head>
<body>
    <form id="form1" runat="server">
   <div>
       <asp:FileUpload ID="FileUpload1" runat="server" />
       <asp:Button ID="Button1" runat="server" Text="Dosya Yükle ve Sıkıştır" 
           onclick="Button1_Click" />
       <br />
       <asp:Label ID="Label1" runat="server" ></asp:Label>
    <br />
</div>
    </form>
</body><!-- www.aspnetornekleri.com -->
</html>

using System.IO;
using ICSharpCode.SharpZipLib;
using ICSharpCode.SharpZipLib.Zip; ekleyip Yukle ve Sıkıştır butonuna
aşağıadaki kodları yazıyoruz.

string yuklenendosya = Path.GetFileName(FileUpload1.PostedFile.FileName);
            FileUpload1.PostedFile.SaveAs(Server.MapPath("dosyalar") + "/" + yuklenendosya);
            FileInfo dosyabilgileri = new FileInfo(Server.MapPath("dosyalar") + "/" + yuklenendosya);
            long dosyaboyut = dosyabilgileri.Length;
            long dosyakackb = dosyabilgileri.Length / 1024;
            //Dosya Sıkıştırma İşlemi başlıyor
            ZipFile yeni = ZipFile.Create(Server.MapPath("dosyalar") + "/"+Path.GetFileNameWithoutExtension(yuklenendosya)+".zip");
            yeni.BeginUpdate();
            yeni.Password = "123456";//Dosyanın açılış şifresi
            yeni.Add(Server.MapPath("dosyalar") + "/" + yuklenendosya, yuklenendosya);
            yeni.SetComment("Aspnetornekleri.com"); //Dosyaya açıklama ekledik
            yeni.CommitUpdate();
            yeni.Close();
            Label1.Text = "Dosya Yükleme İşlemi Başarılı...<br />";
            Label1.Text += "Dosya Adı: " + yuklenendosya + "<br />";
            Label1.Text += "Boyutu:" + dosyakackb.ToString() + "KB <br />";

ilk olarak yeni bir zipli dosya oluşturuyoruz

ZipFile yeni=ZipFile.Create(Server.MapPath("dosyalar")+ /"+Path.GetFileNameWithoutExtension(yuklenendosya)+".zip");

sonra düzenleme için açıyoruz

yeni.BeginUpdate();

oluşturduğumuz zip li dosyaya ekleme yapıyoruz

yeni.Add(Server.MapPath("dosyalar") + "/" + yuklenendosya, yuklenendosya);

açıklama satırı için

yeni.SetComment("Aspnetornekleri.com"); //Dosyaya açıklama ekledik

yazıp

yeni.CommitUpdate();
yeni.Close(); 

dosyayı oluşturma işlemini bitiriyoruz.
dosyayukleziple

Dosya Yukle ve Sıkıştır İndir