.NET'te ZIP'ten CSPROJ İçeriği Çıkarma
Aspose.ZIP for .NET ile ZIP arşivini açın, girdileri inceleyin ve C# uygulamasının ihtiyaç duyduğu yalnızca CSPROJ dosyalarını geri yükleyin. Bu sayfada çıkarma, ZIP container içinde.csproj uzantılı öğeleri bulmak ve denetimli bir hedefe yazmak anlamına gelir. Aspose.ZIP arşivde saklanan dosyayı geri yükler; dosyanın içeriğini yorumlamaz veya dönüştürmez.Seçici çıkarma geliştirici yüklemeleri, build paketleri, kod inceleme ve CI/CD süreçleri için kullanışlıdır. Uygulama her şeyi açmak yerine uzantıya göre filtreleyebilir, ilgisiz dosyaları yok sayabilir ve çıktı adları ile çakışmalar için kural belirleyebilir.
C# Kullanarak ZIP'ten CSPROJ dosyalarını Nasıl Çıkarılır?
Aspose.ZIP for .NET paketini
kurun ve Aspose.Zip namespace’ini referanslayın. Arşiv meta verileri dosyalar yazılmadan önce kullanılabilir; uygulama kaynak kodu dosyaları kaydetmeden önce ArchiveEntry.Name, ArchiveEntry.IsDirectory ve ArchiveEntry.UncompressedSize değerlerini kontrol edebilir.
Package Manager Console Command
PM> Install-Package Aspose.Zip
Kurulumdan sonra ZIP'i Archive ile açın, Archive.Entries üzerinde gezinin, adı .csproj ile biten dizin olmayan girdileri seçin ve her onaylı hedef için ArchiveEntry.Extract çağırın. Örnek yalnızca son dosya adını kullanır; böylece arşivdeki yollar hedef klasör dışına yazamaz.
C# ile CSPROJ Dosyalarını Çıkarma Adımları
- Kaynak ZIP yolunu tanımlayın ve izole bir çıktı dizini oluşturun.
- Input’u
Archivesınıfıyla açın. - Tüm paketi çıkarmak yerine
Archive.Entriesüzerinde gezinin. - Dizin girdilerini atlayın ve adı
.csprojile bitenleri seçin. - Onaylanan her girdiyi güvenli bir hedef dosya adına indirgeyin.
- Seçilen girdiyi
ArchiveEntry.Extractile çıkarın. - Uygulamanın ihtiyaç duyduğu çakışma, boyut, loglama ve temizlik kurallarını uygulayın.
Sistem Gereksinimleri
Örneği çalıştırmadan önce ortamda şunların bulunduğundan emin olun:
- Windows, Linux veya macOS üzerinde desteklenen bir .NET runtime.
- Visual Studio, JetBrains Rider, Visual Studio Code veya başka bir C# geliştirme ortamı.
- NuGet üzerinden kurulmuş veya assembly olarak referanslanmış Aspose.ZIP for .NET.
- Kaynak ZIP için okuma ve hedef dizin için yazma erişimi.
- Güvenilmeyen arşivler için net boyut, çalışma süresi ve geçici depolama limitleri.
C# Örneği: ZIP'ten Seçilen CSPROJ Dosyalarını Çıkarma
Aşağıdaki kod ZIP paketini açar, girdileri .csproj uzantısına göre filtreler ve eşleşen dosyaları tek bir çıktı dizinine yazar. Girdi yollarını düzleştirmek örneği kısa tutar ve parent-directory parçalarının hedefi kontrol etmesini önler.
CSPROJ Dosyalarını ZIP'ten Çıkarma - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-csproj");
string[] allowedExtensions = { ".csproj" };
const ulong MaxEntrySize = 100UL * 1024 * 1024;
Directory.CreateDirectory(outputDirectory);
using (var archive = new Archive(archivePath))
{
foreach (ArchiveEntry entry in archive.Entries)
{
if (entry.IsDirectory) continue;
string fileName = Path.GetFileName(entry.Name);
if (string.IsNullOrWhiteSpace(fileName)) continue;
string extension = Path.GetExtension(fileName);
if (!Array.Exists(
allowedExtensions,
value => string.Equals(value, extension, StringComparison.OrdinalIgnoreCase)))
{
continue;
}
if (entry.UncompressedSize > MaxEntrySize)
{
throw new InvalidDataException(
$"Girdi '{fileName}' 100 MB çıkarma limitini aşıyor.");
}
string destinationPath = Path.Combine(outputDirectory, fileName);
entry.Extract(destinationPath);
}
}
{{i18n.implementation-notes.title}}
.csprojuzantısı yalnızca ilk filtredir. Akış CSPROJ içeriğini okuyacaksa, çıkarma sonrasında dosyayı bu biçimi destekleyen parser veya viewer ile doğrulayın.- Arşivdeki klasörleri korumak istemiyorsanız
Path.GetFileNameveya eşdeğer path sanitization kuralı kullanın. - Büyük paketlerde disk veya bellek kullanımını kontrol altında tutmak için girdi başına ve toplam limitler belirleyin.
- Çıkarılan kodu güven denetimi yapmadan otomatik olarak çalıştırmayın veya derlemeyin; dış girdi olarak değerlendirin.
{{i18n.security-privacy.title}}
{{i18n.security-privacy}}CSPROJ Dosyalarını Çıkarma SSS
Aspose.ZIP çıkarma sırasında CSPROJ içeriğini dönüştürür mü?
Hayır. Aspose.ZIP yalnızca ZIP container içindeki CSPROJ dosyalarını geri yükler. CSPROJ içeriğini okumak veya dönüştürmek için bu biçimi destekleyen API gerekir.
ZIP içinden yalnızca CSPROJ dosyaları çıkarılabilir mi?
Evet. `Archive.Entries` üzerinde gezinip `.csproj` uzantılı girdileri seçin ve ardından `ArchiveEntry.Extract` çağırın.
ZIP içindeki klasör yapısı korunmalı mı?
Bu workflow'a bağlıdır. Güvenli ve düz çıktı gerekiyorsa yalnızca son dosya adını kullanın. Klasör yapısı korunacaksa yazmadan önce yolun her parçası doğrulanmalıdır.
Bu örnek diğer arşiv biçimleriyle kullanılabilir mi?
Filtreleme ve doğrulama yaklaşımı yeniden kullanılabilir; ancak sınıf ve seçenekler ZIP, 7Z, RAR, TAR veya CAB gibi gerçek container ile eşleşmelidir.
İlgili kaynak kodu çıkarma kılavuzları
Arşivlerde sık saklanan proje ve kod biçimleri için C# sayfalarını inceleyin.