Cevapla  Konu Gönder 
 
Derecelendir
  • 0 Oylar - 0 Yüzde
  • 1
  • 2
  • 3
  • 4
  • 5
ASP.NET ile ZIP ve unZIP İşlemleri
01-09-2008, 09:27 PM
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.

[Resim: 2lktzco.jpg]
Tüm Mesajlarını Bul
Alıntı Yaparak Cevapla
« Önceki | Sonraki »
Cevapla  Konu Gönder 
Anahtar Kelimeler

ASP.NET ile ZIP ve unZIP İşlemleri  ,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 İşlemleri  indirmek 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 İşlemlerifree,ASP.NET ile ZIP ve unZIP İşlemleriyukle,ASP.NET ile ZIP ve unZIP İşlemleriİndir,ASP.NET ile ZIP ve unZIP İşlemleridownload,ASP.NET ile ZIP ve unZIP İşlemleriinndir,ASP.NET ile ZIP ve unZIP İşlemleri  Dvdrip,ASP.NET ile ZIP ve unZIP İşlemleri  filmi indir,ASP.NET ile ZIP ve unZIP İşlemlerionline izle,ASP.NET ile ZIP ve unZIP İşlemlerisuper film,ASP.NET ile ZIP ve unZIP İşlemleribedava insit



Benzeyen Konular
Konu: Yazar Cevaplar: Görüntüleyenler: Son Mesaj
  PHP'de SQL'den Veri Çekmek SoniQuake 0 92 07-10-2008 03:51 PM
Son Mesaj: SoniQuake
  Grafik İşlemleri SoniQuake 0 69 12-14-2007 03:41 PM
Son Mesaj: SoniQuake
  Tarih ve Zaman, Dizi İşlemleri SoniQuake 0 76 12-14-2007 03:41 PM
Son Mesaj: SoniQuake
  Veri Tabanı İşlemleri SoniQuake 0 59 12-14-2007 03:40 PM
Son Mesaj: SoniQuake
  Dosya Giriş Çikiş İşlemleri SoniQuake 0 95 12-14-2007 03:40 PM
Son Mesaj: SoniQuake

Forum Atla: