Hasan Akpürüm
Kıdemli Yazılım Danışmanı
Makele Detayı

Asp.Net Zip ve UnZip İşlemleri

7/2/2010 6:10:40 PM
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.