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.