Asp.Net Zip ve UnZip İşlemleri

Hasan Akpürüm

Kıdemli Yazılım Danışmanı

Asp.Net Zip ve UnZip İşlemleri

Yayınlanma 01 Ocak 0001
ICSharpCode.SharpZipLib.dll ini kullanarak sizler için hazırladığım asp.net de zip ve unzip işlemlerini hazırladım. İşlem kısaca textbox a sitenizdeki klasörün yolunu yazıyorsunuz ziple butonuyla belirlediğiniz klasöre zipliyor Unzip i ise fileupload a bağladım isterseniz sitedeki klasörünze bağlayın onunlada pc den seçtiğiniz dosyayı geçiçi olarak upload edip yine belirlemiş olduğunuz klasöre dosyaları çıkartıyor :) Buradan Gerekli dll i indirip referenceelarınıza eklemeyi unutmayınız ve
using ICSharpCode.SharpZipLib.Zip;
olarak Default.cs dosyanıza yazmayı unutmayınız. Örnek Proje İndirmek İçin Tıklayın... Default.aspx
    

    
    


    

Klasör Adı :  Zip Files
 
Default.cs
protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnzip_Click(object sender, EventArgs e)
    {
        lblmesaj.Text = ziple("zipli/", txtklasor.Text, "");
    }
    protected void btnzipac_Click(object sender, EventArgs e)
    {
        lblmesaj.Text = zipac("zipac/", FileUpload1, "");
    }
    private string ziple(string zipkaydedilecekyol, string ziplenecekklasoryol, string zipsifre)
    {
        FastZip ZipSorgu = new FastZip();
        if (zipsifre != "")
        {
            ZipSorgu.Password = zipsifre;
        }
        ZipSorgu.CreateEmptyDirectories = false;
        string uyari;

        string rootPath = String.Empty;
        if (IsPostBack)
        {
            rootPath = Request.PhysicalApplicationPath;
        }
        if (Directory.Exists(string.Format("{0}{1}", rootPath, ziplenecekklasoryol)) && Directory.Exists(Server.MapPath(zipkaydedilecekyol+ziplenecekklasoryol + ".zip")))
        {
            try
            {
                //ziple
                ZipSorgu.CreateZip(string.Format("{0}" + ziplenecekklasoryol + ".zip", rootPath), string.Format("{0}{1}", rootPath, ziplenecekklasoryol), true, "");
                //başkaklasöre Taşı
                File.Move(Server.MapPath(ziplenecekklasoryol + ".zip"), Server.MapPath(zipkaydedilecekyol + ziplenecekklasoryol + ".zip"));
                return uyari = "Zip dosyası " + zipkaydedilecekyol + ziplenecekklasoryol + ".zip adında oluşturuldu.";
            }
            catch
            {
                return uyari = "İşlem Sırasında Hata Oluştu Lütfen İşlemlerini Kontrol Edip Tekrar Deneyiniz";
            }

        }
        else
        {
            return uyari = string.Format("{0} bu isimli klasor mevcut değil veya {0}" + ziplenecekklasoryol.Replace("/", string.Empty) + ".zip dosya var", ziplenecekklasoryol);
        }
    }

    private string zipac(string zipcikarilacakyol, FileUpload FileUpload, string zipsifre)
    {
        string uyari;
        string rootPath = String.Empty;
        if (IsPostBack)
        {
            rootPath = Request.PhysicalApplicationPath;
        }
        try
        {
            string dosyaadi = FileUpload.FileName.ToString();
            FileUpload.SaveAs(Server.MapPath(dosyaadi));
            FastZip ZipSorgu = new FastZip();
            if (zipsifre != "")
            {
                ZipSorgu.Password = zipsifre;
            }
            ZipSorgu.ExtractZip(string.Format("{0}{1}", rootPath, dosyaadi), string.Format("{0}" + zipcikarilacakyol, rootPath), "");
            //başkaklasöre Taşı
            File.Delete(Server.MapPath(dosyaadi));
            return uyari = "Zip dosyası " + zipcikarilacakyol + dosyaadi + " isimli klasöre açıldı";
        }
        catch
        {
            return uyari = "İşlem Sırasında Hata Oluştu Lütfen İşlemlerini Kontrol Edip Tekrar Deneyiniz";
        }

    }
NOT: zipsifre stringini "" yaparsanız dosyalarınıza şifre koyulmaz ;)
Yorum Yaz

Thanks, your message is sent successfully. We will contact you shortly!

Yorumu Gönder