ASP.NET ile ZIP ve unZIP İşlemleri

Mesaj Önizleme  Konuyu Gönder 
ASP.NET ile ZIP ve unZIP İşlemleri
Yazar Mesaj
SoniQuake
#78,869
********
Forum Yöneticisi

Mesajlar: 6,826
Katılım: Nov 2007
Karma Puanı: 65

Toplam Konu: 5087
Mesaj: #1
ASP.NET ile ZIP ve unZIP İşlemleri

İster web siteleri programlarken ister windows programlarında çoğu zaman bir ZIP dosyası oluşturmaya ihtiyaç duymuşsunuzdur. Ben genelde ZIP dosyalarını web sitelerinde yedekleme işlemleri için veya kullanıcı birden çok dosyayı siteden download edecekse hepsini birleştirip bir dosya olarak verebilmek için kullanırım. Windows programlarında da yedekleme işlemleri için veya Export ve İmport işlemlerinde dışarıyda tek bir dosya vermek için kullanabiliriz. Genel olarak baktığımızda internette bizi veri trafiğinden kurtaran ve derli doplu downloadlar sağlayan bir araç gibi kullanılabilir ZIP dosyaları.

Esas mesele .NET kodumuz ile istediğimiz dosyaları ZIPleyip var olan ZIP dosyalarını da açabilmek. Bu noktada bir sürü alternatif var, isterseniz üçüncü parti componentler satın alabilirsiniz veya ücretsiz dağıtılan bazı DLL kütüphanelerini de kullanabilirsiniz. Ama aslında bizim .NET Framework dahilinde kullanabileceğimiz yapılar da mevcut.

Microsoft.VisualStudio.Zip.dll

"Böyle bir sınıftan haberim yoktu. Bu kadar kolay mıymış?" diyenler üzülmesinler Haberinizin olmaması çok normal çünkü bu sınıf yapısına Visual Studio içerisinde "Add Reference" dediğinizde gelen listede karşılaşmanız mümkün değil. Aslında bu sınıf sadece Visual Studio Content Installer ve Template Wizard ile kullanılmak üzere hazırlanmış. O nedenle herhangi bir şekilde bu sınıfla ilgili Microsoft'dan destek almanız da mümkün değil.

Yukarıda ismini yazmış olduğum DLL dosyasını kendiniz gidip GAC (Global Assembly Cache) içerisinden bularak almanız gerekecek. Bunun için Start menüsünden Run diyerek c:\windows\assembly\gac_msil\ yazabilir ve direk söz konusu klasöre ulaşabilirsiniz. Benim bilgisayarımda tam yolu şu şekilde oldu: C:\windows\assembly\gac_msil\Microsoft.VisualStudi o.Zip\8.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualSt udio.Zip.dll

DLL dosyasını projenize kopyaladıktan sonra "Add Reference" bölümünde de "Browse" diyerek DLL'i doğrudan projenize referans olarak ekleyebilirsiniz.

Imports Microsoft.VisualStudio.Zip

Yukarıdaki şekilde DLL içerisindeki hedefimizi import ettikten sonra aşağıdaki gibi basit bir kod ile ZIP dosyalarını diske açabiliyoruz.

Dim Cozucu As New Microsoft.VisualStudio.Zip.ZipFileDecompressor("C: \Benim\dosyam\burada.zip")

Cozucu.UncompressToFolder("C:\Dosyaları\Buraya\Koy \")



Cozucu adını verdiğimiz bir değişkene ZipFileDecompressor sınıfının bir kopyasını hedef ZIP dosyamızın tam yolunu da vererek yarattıktan sonra UncompressToFolder metodu ile istediğimiz bir yere tüm dosyaları açabiliyoruz. Şimdi sıra geldi ZIP dosyaları yaratmaya;

Dim Dosyalar() As String = System.IO.Directory.GetFiles("C:\Sıkıştıracağım\Do syaların\Hepsi\burada\")

'Dosyaların tam yol listesinin bulunduğu dizide sadece dosya isimlerini bırakalım.

For Sayac As Integer = 0 To Dosyalar.GetUpperBound(0)

Dosyalar(Sayac) = System.IO.Path.GetFileName(Dosyalar(Sayac))

Next



Dim Sikistirici As New ZipFileCompressor("C:\ZIP\Dosyam\Buraya.zip", "C:\Sikistirilacak\Dosyaların\Bulundugu\yer\Burası \", Dosyalar, True, False)



Sıkıştırma işlemine başlamadan önce sıkıştıracağımız dosyaların bir listesini String tipinde bir diziye almamız gerekiyor. O nedenle ilk satırda System.IO.Directory.GetFiles sınıfını kullanarak Dosyalar adındaki dizimize listeyi alıyoruz. System.IO.Directory.GetFiles sınıfı dosyaların listesini geriye dosyaların tam yolu ile döndürüyor. Biz dosyaların yol bilgisinin ZIP dosyasına aktarılmasını istemediğimiz için dizideki her bir öğeyi for döngüsü ile gezerek dosya isimlerini System.IO.Path.GetFileName sınıfı ile ayıklıyoruz.

Sıra geldi sıkıştırma işlemini yapmaya. Sıkıştırma işlemi için Sikistirici adında bir ZipFileCompressor yaratıyoruz. Esasen bu değişken yaratma işlemini yaparken sıkıştırma işini de yapmış olacağız. ZipFileCompressor tanımlarken verdiğimiz parametrelerden ilki yaratılacak ZIP dosyasının adı ve tam yolu. İkinci parametre tüm sıkıştırılacak dosyaların bulunduğu klasörün tam yolu, üçüncü parametre ise dosyalarımızın adlarının bulunduğu dizinin ta kendisi. Son olarak verdiğimiz iki parametreden ilki hedef konumda başka bir ZIP dosyası varsa silinip silinmeyeceğini diğeri ise bir hata durumunda sıkıştırmanın iptal edilip edilmeyeceğini belirliyor.

Not :
  • Moderator olmak isteyen arkadaşlar lütfen özel mesaj atmayınız. Başvurularınız değerlendirilmeyecektir.
  • Forumda karşılaştığınız sorunlarla ilgili özel mesaj atmayınız. Soru - Sorun bölümüne yeni konu açarak sorunlarınızı belirtebilirsiniz.
01-09-2008 09:27 PM
Kullanıcının websitesini ziyaret et Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı bir cevapta alıntı yap
Mesaj Önizleme  Konuyu Gönder 


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Grafik İşlemleri SoniQuake 0 127 12-14-2007 03:41 PM
Son Mesaj: SoniQuake
  Tarih ve Zaman, Dizi İşlemleri SoniQuake 0 114 12-14-2007 03:41 PM
Son Mesaj: SoniQuake
  Veri Tabanı İşlemleri SoniQuake 0 104 12-14-2007 03:40 PM
Son Mesaj: SoniQuake
  Dosya Giriş Çikiş İşlemleri SoniQuake 0 161 12-14-2007 03:40 PM
Son Mesaj: SoniQuake

Anahtar Kelimeler

ASP.NET ile ZIP ve unZIP İşlemleri indir, ASP.NET ile ZIP ve unZIP İşlemleri yükle, ASP.NET ile ZIP ve unZIP İşlemleri download, ASP.NET ile ZIP ve unZIP İşlemleriindirmek istiyorum, ASP.NET ile ZIP ve unZIP İşlemleri yükle, ASP.NET ile ZIP ve unZIP İşlemleri bedava, ASP.NET ile ZIP ve unZIP İşlemleri İNDİR, ASP.NET ile ZIP ve unZIP İşlemleri YÜKLE, ASP.NET ile ZIP ve unZIP İşlemleri free, ASP.NET ile ZIP ve unZIP İşlemleri yukle, ASP.NET ile ZIP ve unZIP İşlemleri İndir, ASP.NET ile ZIP ve unZIP İşlemleri download, ASP.NET ile ZIP ve unZIP İşlemleri inndir, ASP.NET ile ZIP ve unZIP İşlemleri Dvdrip, ASP.NET ile ZIP ve unZIP İşlemleri filmi indir, ASP.NET ile ZIP ve unZIP İşlemleri online izle, ASP.NET ile ZIP ve unZIP İşlemleri super film, ASP.NET ile ZIP ve unZIP İşlemleri bedava izle


Foruma Git: