• 05-10-2010, 04:55:32
    #1
    Üyeliği durduruldu
    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

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <style type="text/css">
    
    
    input{margin:0;padding:0;}</style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:label ID="lblmesaj" runat="server"></asp:label>
            <br />
            Klasör Adı : &nbsp;<asp:textbox ID="txtklasor" runat="server">Zip Files</asp:textbox>
            <asp:button ID="btnzip" runat="server" onclick="btnzip_Click" 
                Text="Zip Dosyası Oluştur" />
            <br />
            <asp:fileupload ID="FileUpload1" runat="server" />
    &nbsp;<asp:button ID="btnzipac" runat="server" onclick="btnzipac_Click" 
                Text="Zip i Aç" />
        
        </div>
        </form>
    </body>
    </html>
    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)) &amp;&amp; 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
  • 23-10-2010, 14:20:54
    #2
    Üyeliği durduruldu
    bir sorum olacak peki asp.net üzerinden Rar olarak bölme işlemi yapabiliyormuyuz ?