
C# Kullanarak Klasördeki Dosyalar Nasıl Sıkıştırılır
ZIP dosyaları, ZIP formatını kullanarak bir veya birden fazla sıkıştırılmış dosya veya klasör içeren dosyalardır. Birden fazla dosya veya klasörü tek bir dosya olarak sıkıştırmak ve arşivlemek için yaygın bir yöntemdir. Verilerin boyutunu azaltabilir, disk alanı tasarrufu sağlayabilir ve dosyaların internet üzerinden aktarılmasını kolaylaştırabilirler. Bu makalede, ZIP dosyalarının C# ile IronZIP kütüphanesi kullanılarak nasıl çalışılacağını öğreneceksiniz. Programatik olarak ZIP dosyaları oluşturmayı, okumayı, çıkarmayı ve güncellemeyi, ayrıca IronZIP'in çeşitli işlevlerini; şifreleme, parola koruma ve sıkıştırma seviyelerini nasıl kullanacağınızı göreceksiniz. Bu makalenin sonunda, C# uygulamalarınızda IronZIP'i kullanarak ZIP dosyalarını kolaylıkla işleyebileceksiniz.
Bu Makalede Ele Alacaklarımız
- Projemizde IronZIP'i Kurun
- ZIP dosyası oluşturun
- Parola Korumalı ZIP dosyası oluşturun
- ZIP dosyası çıkarın
- Parola Korumalı ZIP Dosyası çıkarın
- Mevcut ZIP arşivine erişim
IronZIP Nedir?
IronZIP, C#'da programatik olarak ZIP oluşturmanıza, okumanıza ve çıkarmanıza olanak tanıyan güçlü ve çok yönlü bir ZIP arşiv kütüphanesidir. Çeşitli arşiv formatlarını destekler, örneğin: ZIP, TAR, GZIP ve BZIP2. Ayrıca, parola koruma, şifreleme ve sıkıştırma seviyelerini de destekler. IronZIP, .NET 8, 7, 6, Core, Standard ve Framework ile uyumludur.
IronZIP, ZIP dosyalarıyla çalışmanın çeşitli kullanım durumlarını ve faydalarını yönetmenize yardımcı olabilir:
- Yedekleme sistemi oluşturma: IronZIP'i kullanarak önemli dosya ve klasörlerinizi sıkıştırarak ve şifreleyerek bir ZIP arşivine koyup güvenli bir konumda saklayabilirsiniz. Bu yolla, disk alanı tasarrufu yapabilir ve verilerinize yetkisiz erişimi önleyebilirsiniz.
- E-posta eki gönderme: E-posta eklerinizi bir ZIP dosyası içinde sıkıştırarak boyutunu azaltabilirsiniz. Bu, dosya boyutu sınırının aşılmasını önleyebilir ve iletim sürecini hızlandırabilir.
- Web'den dosya indirme: Yazılım paketleri, belgeler, görüntüler ve diğer dosya türleri gibi web'den ZIP dosyaları indirip çıkarabilirsiniz. Bu, bant genişliğini ve zamanı tasarruf etmenize ve ihtiyaç duyduğunuz dosyalara kolayca erişmenizi sağlar.
IronZIP ile Başlarken
Kodu yazmadan önce projenizde IronZIP NuGet Paketini kurmanız gerekir. IronZIP, NuGet üzerinden erişilebilen popüler bir sıkıştırma kütüphanesidir.
IronZIP Kütüphanesinin Kurulumu
IronZIP'i kurmak için Visual Studio'da NuGet Paket Yöneticisi Konsolunu kullanabilirsiniz. Basitçe şu komutu çalıştırın:
Alternatif olarak, paketi doğrudan resmi IronZIP web sitesinden indirebilirsiniz. Kurulum tamamlandıktan sonra, C# kodunuzun en üstüne şu ad alanını ekleyerek başlayabilirsiniz.
using IronZip;Imports IronZipKlasörde C# ZIP Dosyaları Oluşturma
IronZIP'i kullanarak kolayca bir klasörde ZIP dosyaları oluşturabilirsiniz. Aşağıdaki kod belirtilen dizinden tüm dosyaları zipleyecektir.
using System;
using System.IO;
using IronZip;
class Program
{
static void Main(string[] args)
{
// Get all files from the specified directory
string[] fileArray = Directory.GetFiles(@"D:\Docs\");
// Create a new ZIP archive
using (var archive = new IronZipArchive())
{
// Iterate through each file and add it to the archive
foreach (var file in fileArray)
{
archive.Add(file); // Add files to the ZIP
}
// Save the archive to a file
archive.SaveAs("myZipFile.zip");
}
}
}Imports System
Imports System.IO
Imports IronZip
Module Program
Sub Main(ByVal args As String())
' Get all files from the specified directory
Dim fileArray As String() = Directory.GetFiles("D:\Docs\")
' Create a new ZIP archive
Using archive As New IronZipArchive()
' Iterate through each file and add it to the archive
For Each file As String In fileArray
archive.Add(file) ' Add files to the ZIP
Next
' Save the archive to a file
archive.SaveAs("myZipFile.zip")
End Using
End Sub
End ModuleYukarıdaki C# kodu, tüm dosyaları tek bir ZIP dosyasına sıkıştırmak için IronZIP kütüphanesini kullanır. Kod şunları yapar:
fileArrayadında bir dizi dizisi tanımlar ve dizin yolunu ("D:\Docs") bir parametre olarak geçerekDirectory.GetFilesyönteminin sonucuna atar. Bu yöntem, belirtilen dizindeki tüm dosyaların tam adlarını içeren bir dizi dize döndürüyor.- Bellekte bir ZIP arşivini temsil eden
IronZipArchivesınıfının yeni bir örneğini oluşturur. Örnekarchiveadlı bir değişkene atanır ve kod bloğu sona erdiğinde ZIP arşivi yok edildiğinden emin olan birusingifadesine sarılır. fileArraydizisi üzerinde birforeachdöngüsü kullanarak yineler ve her bir dosya için dosya adını bir parametre olarak geçirerekarchivenesnesininAddyöntemini çağırır. Bu yöntem, dosya ile aynı ad ve içeriğe sahip yeni bir giriş ekler.- ZIP dosyasının adını ("myZipFile.zip") bir parametre olarak geçirerek
archivenesnesininSaveAsyöntemini çağırır. Bu yöntem, geçerli dosya sisteminde bir dosyaya ZIP arşivini kaydeder.
Bu şekilde, sadece birkaç satır kod ile kolayca yeni ZIP arşivleri oluşturabilirsiniz.
Çıktı
Çıktı şu şekildedir:

Parola Korumalı ZIP dosyası oluşturun
IronZIP, parola korumalı ZIP dosyaları oluşturmak için kolay bir yöntem sağlar. Aşağıdaki kod örneği, dosyaları sıkıştıracak ve parola ile yeni bir ZIP dosyası oluşturacaktır.
using System;
using System.IO;
using IronZip;
class Program
{
static void Main(string[] args)
{
// Get all files from the specified directory
string[] fileArray = Directory.GetFiles(@"D:\Docs\");
// Create a new ZIP archive
using (var archive = new IronZipArchive())
{
// Iterate through each file and add it to the archive
foreach (var file in fileArray)
{
archive.Add(file); // Add files to the ZIP
}
// Set Password and Encryption Method
archive.Encrypt("myPa55word", EncryptionMethods.AES256);
// Save the archive to a file
archive.SaveAs("myZipFile.zip");
}
}
}Imports System
Imports System.IO
Imports IronZip
Module Program
Sub Main(args As String())
' Get all files from the specified directory
Dim fileArray As String() = Directory.GetFiles("D:\Docs\")
' Create a new ZIP archive
Using archive As New IronZipArchive()
' Iterate through each file and add it to the archive
For Each file In fileArray
archive.Add(file) ' Add files to the ZIP
Next
' Set Password and Encryption Method
archive.Encrypt("myPa55word", EncryptionMethods.AES256)
' Save the archive to a file
archive.SaveAs("myZipFile.zip")
End Using
End Sub
End ModuleIronZIP kullanarak bir ZIP arşivi için "myPa55word" parolası belirler. Bu, arşive AES-256 şifrelemesi uygulayarak güvenliği artırır ve yalnızca doğru parolaya sahip kullanıcıların içeriğine erişebilmesini sağlar. Bu özellik, C# uygulamalarında saklama veya aktarım sırasında hassas verileri korumak için değerlidir. Şifreleme algoritmasının belirtilen modunu ikinci parametrede geçirmeniz gerekiyor.
Dosya aşağıda gösterildiği gibi şifrelenmiştir.
Çıktı

Belirtilen yoldan dizinlerden geçerek bir ZIP dosyası oluşturmanın gösterimini gördük. Şimdi dosyaları çıkarma örneğine doğru ilerleyelim.
ZIP Arşivinden Dosya Çıkartma
IronZIP, C#'ta bir ZIP arşivinden dosya çıkarmak için bir yöntem sağlar. Aşağıdaki kod örneği, ZIP arşivinin içindeki sıkıştırılmış dosyayı çıkartacaktır.
using IronZip;
class Program
{
static void Main(string[] args)
{
// Extract all files from the ZIP archive to the specified directory
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
}
}Imports IronZip
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Extract all files from the ZIP archive to the specified directory
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles")
End Sub
End ClassIronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles"); kodu, "myZipFile.zip" adlı dosyadaki tüm dosyaları IronZIP kullanarak çıkartır ve "myExtractedFiles" dizinine yerleştirir. Bu özlü yöntem, C#'ta ZIP arşivlerini çıkarmayı basitleştirir, dosya çıkarma görevleri için uygun bir çözüm sunar.
Çıktı
Çıktı şu şekildedir:

Parola Korumalı Bir ZIP Dosyasından Nasıl Çıkarılır
IronZIP ayrıca parola korumalı ZIP dosyalarını çıkarmak için bir yöntem sağlar. Aşağıdaki kod, belirtilen ZIP dosyasından mevcut tüm dosya ve dizinleri çıkarmak için IronZIP yöntemini kullanacaktır.
using IronZip;
class Program
{
static void Main(string[] args)
{
// Extract all files from the password-protected ZIP archive to the specified directory
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
}
}Imports IronZip
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Extract all files from the password-protected ZIP archive to the specified directory
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word")
End Sub
End ClassExtractArchiveToDirectory yöntemi, IronZipArchive sınıfına ait olup, bir ZIP arşivindeki tüm girdileri belirtilen bir dizine çıkarır. Yönteme üç argüman geçer: ZIP dosyasının yolu ("myZipFile.zip"), hedef dizinin yolu ("myExtractedFiles") ve ZIP dosyasının parolası ("myPa55word").
Bu şekilde, parola korumalı ZIP dosyalarını kolaylıkla çıkartabilirsiniz.
Mevcut Bir Arşive Nasıl Erişilir
IronZIP, mevcut arşive erişmek ve dosyada bulunan tüm girişleri görüntülemek için yöntemler sağlar.
using System;
using System.Collections.Generic;
using IronZip;
class Program
{
static void Main(string[] args)
{
// Open an existing ZIP archive with a password
using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
{
// Get entries list
List<string> names = archive.GetArchiveEntryNames();
// Iterate through each entry name and print it
foreach (string name in names)
{
Console.WriteLine(name);
}
}
}
}Imports System
Imports System.Collections.Generic
Imports IronZip
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Open an existing ZIP archive with a password
Using archive = New IronZipArchive("myZipFile.zip", "myPa55word")
' Get entries list
Dim names As List(Of String) = archive.GetArchiveEntryNames()
' Iterate through each entry name and print it
For Each name As String In names
Console.WriteLine(name)
Next name
End Using
End Sub
End ClassSağlanan C# kodu, IronZIP kullanarak "myPa55word" parolasıyla "myZipFile.zip" adlı bir ZIP dosyasını yükleyerek güvenli bir IronZipArchive örneği oluşturur. Dosya şifrelenmemişse parola parametresini geçmeyin. Daha sonra şifrelenmiş ZIP arşivinin içinde geçerli olan giriş adlarının (dosya ve klasör adları) listesini alır ve yazdırır.
GetArchiveEntryNames yöntemi, giriş adlarını toplar ve foreach döngüsü her adı konsola çıkarır. Bu, IronZIP'in parola korumalı ZIP arşivlerinden güvenli erişim ve giriş bilgilerini alma nasıl mümkün kılıyor örnekle gösterilmektedir.
Çıktı

Sonuç
Sonuç olarak, IronZIP, ZIP dosyaları ile çalışmak için sağlam ve çok yönlü bir C# kütüphanesi olduğunu kanıtlıyor. Temel sıkıştırma ve çıkartma işlevlerinin ötesine geçerek, parola koruma, şifreleme ve çeşitli arşiv formatları ile uyumluluk gibi özellikler sunar. Yedekleme sistemleri oluştururken, eposta eklerini yönetirken veya web'den dosya indirirken İronZIP, bu görevleri basitlik ve verimlilikle akıcı hale getirir.
C# uygulamalarınıza IronZIP entegrasyonu yaparak, ZIP dosyalarını işleme, veri güvenliğini artırma ve dosya aktarım süreçlerini optimize etme konusunda güçlü bir araç kazanırsınız. Gerekir duyulduğunda ücretsiz bir deneme kullanabilirisiniz.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.
İlgili Makaleler


