C# ve .NET ile Arşiv Dosyalarını Çıkarma

ZIP ve diğer arşiv biçimlerini .NET uygulamalarında programatik olarak açın.

.NET'te Arşiv Dosyası Çıkarma

Aspose.ZIP for .NET, C# uygulamalarında arşivleri açmak ve içeriklerini çıkarmak için kullanılan managed bir kütüphanedir. API’ler arşiv girdilerini okumanıza, tüm öğeleri veya yalnızca seçilenleri çıkarmanıza, klasör yapısını korumanıza ve sonucu bir klasöre ya da stream’e yazmanıza olanak tanır. İşleme uygulamanın içinde kaldığı için sunucu tarafı süreçleri masaüstü yazılımlarına veya komut satırı araçlarına bağlı kalmaz.

Yaygın kullanım alanları arasında belge alımı, yedek geri yükleme, dağıtım paketleri, yükleme işleme ve otomatik veri alışverişi bulunur. Aynı API ASP.NET servislerinde, arka plan çalışanlarında, masaüstü uygulamalarında, bulut işlerinde ve CI/CD süreçlerinde kullanılabilir.

Akış biçime göre değişir. ZIP, 7Z, RAR, TAR ve CAB farklı container yapıları, sıkıştırma yöntemleri ve API sınıfları kullanır. Bu genel bakış ortak çıkarma sürecini açıklar; biçime özel sayfalar doğru sınıfı, seçenekleri ve sınırlamaları belirtir.

Arşiv Dosyası Çıkarıcı Nedir?

Arşiv dosyası çıkarıcı, bir veya daha fazla dosya içeren container’ı açar ve saklanan içeriği geri yükler. Süreç genellikle arşiv meta verilerini okur, girdileri ve dizinleri belirler, veriyi açar ve sonucu onaylanmış bir konuma yazar. Şifreli arşivler ayrıca geçerli kimlik bilgileri ve ilgili biçimin desteklediği ayarları gerektirir.

Extract, unpack ve decompress terimleri çoğu zaman benzer işlemler için kullanılır. Geliştiriciler unzip files dediğinde ZIP container içeriğini çıkarmayı kasteder. Arşiv çıkarma daha geniştir ve 7Z, RAR, TAR, CAB, CPIO ve XZ gibi biçimleri de kapsar.

Arşiv Çıkarma Nasıl Çalışır?

Tipik bir C# akışı yedi aşamadan oluşur:

  1. Arşivi local path, upload, stream veya storage service üzerinden alın.
  2. Uygulamanın bu arşiv biçimini desteklediğini doğrulayın.
  3. Container’ı biçime uygun API sınıfıyla açın.
  4. Filtreleme veya seçici çıkarma gerekiyorsa arşiv girdilerini inceleyin.
  5. Dosya yazmadan önce çıktı yollarını ve resource limitlerini doğrulayın.
  6. Onaylanan girdileri izole edilmiş hedefe çıkarın.
  7. Çıktıyı sonraki uygulama aşamasına aktarın ve geçici verileri silin.

Açılış sınıfı input türüne bağlıdır; ZIP, 7Z, RAR, TAR ve CAB aynı iç modeli paylaşmaz. Bir servis yine de tek bir uygulama düzeyi workflow sunabilir ve her container’ı ilgili Aspose.ZIP API’sine yönlendirebilir.

Çıkarılabilen Arşiv Biçimleri

Kütüphane ZIP, 7Z, RAR, TAR, GZIP, BZIP2, XZ, LZIP, Z, CPIO, CAB ve WIM dahil olmak üzere yaygın arşiv ve sıkıştırma biçimleriyle çalışır. Kullanılabilen işlemler farklıdır; bazı biçimler birden çok girdi içerirken bazıları tek bir sıkıştırılmış stream veya başka bir sıkıştırma katmanına sarılmış TAR container olabilir.

Yaygın Dosya Çıkarma Akışları

Tüm arşivi açma. Her girdi gerekiyorsa ve input doğrulanmışsa tam çıkarma kullanılır. Gerektiğinde özgün klasör hiyerarşisini koruyun ve her iş için benzersiz bir hedef atayın.

Yalnızca seçilen girdileri okuma. Veri yazmadan önce Archive.Entries üzerinde gezinin ve uygulama kurallarını uygulayın. Paket çok sayıda varlık içeriyor ancak akış yalnızca bir belge, manifest, yapılandırma dosyası veya bilinen klasör istiyorsa bu yaklaşım uygundur.

Stream işleme. Stream tabanlı input ASP.NET yüklemeleri, object storage, veritabanları ve mesaj odaklı sistemler için uygundur. Stream sahipliği ve yaşam süresi açık olmalı; sınırsız bir arşivin tamamı belleğe alınmamalıdır.

Korumalı içeriği açma. Kimlik bilgilerini ilgili biçimin decryption ayarlarıyla sağlayın. Parolalar protected configuration veya secret store üzerinden gelmeli ve loglara yazılmamalıdır.

C# Projesine Aspose.ZIP Ekleme

Windows, Linux veya macOS üzerinde desteklenen bir .NET ortamını hedefleyen C# projesine Aspose.ZIP NuGet paketini kurun. Ardından gerekli namespace’i referanslayın ve input container ile eşleşen sınıfı seçin.

Package Manager Console

PM> Install-Package Aspose.Zip

C# Örneği: ZIP Dosyasını Açma

ZIP ortak workflow için kısa bir örnek sunar. Kod input’u açar ve içeriği hedef dizine yazar. Bu deseni dış dosyalarla kullanmadan önce container’ı, çıktı yollarını ve resource limitlerini doğrulayın.

ZIP İçeriğini Bir Dizine Çıkarma

using Aspose.Zip;
using System.IO;

string archivePath = Path.GetFullPath("input.zip");
string outputDirectory = Path.GetFullPath("output");

Directory.CreateDirectory(outputDirectory);

using (var archive = new Archive(archivePath))
{
    archive.ExtractToDirectory(outputDirectory);
}

Production Ortamında Güvenli Arşiv Çıkarma

Kullanıcılardan veya dış sistemlerden gelen arşivleri güvenilmeyen input olarak ele alın. Beklenen dosya uzantısı container’ın geçerli veya güvenli olduğunu kanıtlamaz. Çıktı yollarını onaylı hedefe göre çözümleyin; absolute path, parent traversal ve hedef klasör dışındaki sonuçları reddedin. Sıkıştırılmış boyutu, açılmış boyutu, girdi sayısını, çalışma süresini ve paralelliği sınırlayın.

Çıkarmayı Tarayıcıda Test Etme

Ücretsiz çevrimiçi çıkarma uygulaması , yazılım kurmadan örnek input test etmenizi sağlar. C# akışını uygulamadan önce doğrulama yapmak için kullanışlıdır.

Dosya Türüne Göre Çıkarma Kılavuzları

Uygulama ayrıntıları container’a ve saklanan biçime bağlıdır. Biçime özel kılavuz doğru Aspose.ZIP sınıfını, tam ve seçici çıkarma örneklerini, parola ve şifreleme davranışını, stream işlemeyi, sınırlamaları ve API referanslarını belirtmelidir.

Dosya Biçimine Göre Arşiv Çıkarma Kılavuzları

ZIP arşivlerinde sık saklanan dosya ve varlıklar için C# sayfalarını inceleyin.

Arşiv Çıkarma Kaynakları

Arşiv Çıkarma SSS

1. C# içinde arşiv dosyalarını nasıl çıkarırım?

Aspose.ZIP’i kurun, input’u biçimle eşleşen sınıfla açın ve tüm container’ı veya seçilen girdileri onaylı bir dizine ya da stream’e çıkarın.

2. ZIP arşivinden dosyaları nasıl çıkarabilirim?

ZIP input için Archive örneği oluşturun ve tüm içerik için ExtractToDirectory çağırın. Yalnızca belirli öğeler gerekiyorsa Archive.Entries üzerinde gezinin.

3. Arşiv çıkarma ZIP açma ile aynı şey mi?

ZIP açma özellikle ZIP dosyaları için geçerlidir. Çıkarma daha geniştir ve 7Z, RAR, TAR, CAB, CPIO ve WIM gibi biçimleri de kapsar.

4. .NET uygulamaları parola korumalı arşivleri açabilir mi?

Aspose.ZIP, ilgili biçimler için geçerli kimlik bilgileri ve eşleşen decryption ayarları sağlandığında parola tabanlı erişimi destekler.

5. Yüklenen arşivler güvenli şekilde nasıl çıkarılmalıdır?

İzole geçici depolama kullanın, her çıktı yolunu doğrulayın, biçimleri ve boyutları sınırlayın, timeout belirleyin ve geçici verileri silin.