
.NET Core'da Dosyalar Nasıl Çıkartılır
1. Giriş
"Zip'ten çıkar" bir ZIP arşivinden dosyaları ve klasörleri çıkarma ve dekompress etme sürecini tanımlar. "Zip'ten çıkar" sıkıştırılmış dosyaları veya dizinleri orijinal durumuna geri getirme sürecini ifade eder, böylece bir ZIP dosyasına sıkıştırıldıktan sonra yeniden erişilebilir ve kullanılabilir hale gelirler. Görüntüler, TXT dosyaları vb. gibi çeşitli dosya türlerini ZIP dosyalarına ekleyebiliriz.
ZIP arşivinin içeriğini geri almak için kullanıcılar sıkıştırmanın ters işlemi olan zip çözme işlemi aracılığıyla içeriğe ulaşabilir. Bireysel dosyalara veya etkili iletim, depolama veya paylaşım için bir araya getirilmiş klasörlere erişim, bunun popüler bir kullanım alanıdır. "Zip'ten çıkar" işlemi tamamlandığında, dosyalar orijinal yapısına döner ve kullanıcının ihtiyacına göre okunabilir, değiştirilebilir veya kullanılabilir. Bu makalede, IronZIP Arşiv Kütüphanesi'ni kullanarak Asp.net core'da dosyaları zip'ten çıkaracağız.
2. Asp.net Core'da Zip'ten Çıkar Dosya Özeti
- Yeni bir Asp.net Core projesi oluşturun.
- Oluşturulan projeye IronZIP kütüphanesini kurun.
- Bir dosyayı çıkarmak için
IronArchivesınıfını oluşturun. - ZIP dosyası,
ExtractArchiveToDirectoryfonksiyonu kullanılarak çıkarılabilir. - Çıkarma işleminin yapılacağı hedef dosyayı belirtin.
3. IronZIP Kütüphanesi
Iron Software, .NET uygulamalarında ZIP dosyalarını daha kolay yönetmeyi sağlayan .NET kütüphanesi IronZIP'i yarattı. Bu, programcıların ZIP ile çeşitli şekillerde etkileşim kurmalarına imkân tanıyan araçlar ve özellikler sunar. Bunlar arasında ZIP dosyalarının içinde dosya ve dizinler oluşturma, çıkarma, sıkıştırma, dekomprese etme, şifreleme ve değiştirme işlemleri yer alır.
3.1 IronZIP Özellikleri
- ZIP Dosya Oluşturma: .NET uygulamalarının yeni ZIP arşivlerini sıfırdan oluşturabilme yeteneği.
- Çıkarma ve Dekomprese Etme: Mevcut ZIP paketlerinden dosya ve dizinleri çıkarma ve zip içeriğini zip'ten çıkarabilme kabiliyeti.
- Sıkıştırma: Dosyaların ve klasörlerin organize hale getirilmiş ve depolama veya taşımaya uygun hale getirilebilmesi için ZIP arşivlerine sıkıştırılabilmesi için araçlar sağlar.
- Parola koruması ve şifreleme: ZIP arşivlerinin içeriğini korumak amacıyla şifre koruması uygulayabilme ve ZIP dosyalarını şifreleyebilme imkânı sunar.
- Dosya Manipülasyonu: Bu özellik, programcıların ZIP paketleri içinde dosya ve dizin ekleme, silme, güncelleme veya başka şekilde işlem yapabilmelerine olanak tanır.
- Uyumluluk: Çeşitli .NET ortamlarında çalışmak için tasarlanmış ve birden fazla framework sürümüyle uyumludur.
- Performans Optimizasyonu: .NET programlarının büyük ZIP dosyalarını veya veri kümelerini daha etkili bir şekilde yönetebilmesi için hızın maksimize edilmesine yönelik hedeflenmiştir.
Geliştiriciler, ZIP dosyalarını uygulamaları için yönetirken IronZIP'i faydalı bir araç olarak bulabilirler. .NET frameworkü içinde, ZIP arşivleriyle programatik olarak çalışmak için basitlik ve esneklik sunarak çeşitli özellikler sağlar.
Yazılım kütüphaneleri zaman içinde güncellendiği ve geliştirildiği için, en son özellikler, yetenekler, uyumluluk ve sonraki sürümlerde eklenen diğer herhangi bir işlevsellik hakkında bilgi almak için resmi dokümantasyonu, sürüm notlarını veya IronZIP web sitesini inceleyin. Daha fazla bilgi için buraya tıklayın.
3.2 Visual Studio'da Yeni Proje Oluşturma
Visual Studio programını başlattıktan sonra Dosya seçeneğini seçin. "Yeni proje"yi, ardından "Asp.Net core Web Uygulaması"nı seçin.
İlgili metin kutusuna proje adını yazın ve dosya konumunu seçin. Ardından Oluştur düğmesine tıklayın ve gerekli .NET Framework sürümünü seçin.
Seçili uygulamanın yapısı şimdi Visual Studio projesi tarafından oluşturulacaktır. Bu durumda, ASP.NET MVC kullanılmaktadır. Bu nedenle, iki seçeneğimiz var: ya mevcut denetleyiciyi kullanarak kodu ekleyip uygulamayı oluşturup çalıştırmak ya da yeni bir tane oluşturmaktir.
Kitaplık daha sonra eklenebilir ve kod test edilebilir.
4. IronZIP Paketi İndir
4.1 Visual Studio Kullanımı
Paketleri Visual Studio'nun NuGet Paket Yöneticisi özelliği ile doğrudan çözümünüze kurabilirsiniz. Aşağıdaki görüntüyü kullanarak NuGet Paket Yöneticisine erişebilirsiniz.

Bir arama kutusu var ve bu kutu NuGet web sitesi paket listesine ulaşır. Aşağıdaki ekran görüntüsü, paket yöneticisinde 'IronZIP' ifadesini nerede arayacağımızı gösteriyor.

Yukarıdaki resimde ilgili arama terimlerinin bir listesi gösterilmektedir. Çözüm paketini kurmak için gereken seçeneği seçin.
4.2 Visual Studio Komut Satırını Kullanma
Visual Studio'da, Araçlar > NuGet Paket Yöneticisi'ni seçerek Paket Yöneticisi Konsolunu görüntüleyin.
Aşağıdaki satırı paket yöneticisinin terminal sekmesine yazın:
Aktif projeye indirip yükledikten sonra, paket kullanıma hazırdır.
4.3 NuGet web sitesinden doğrudan indirme
Üçüncü yolu kullanarak, NuGet paketi doğrudan web sitesinden alınabilir.
Bağlantıyı açmak için oraya gidin.
Menünün sağından indirme paketini seçin.
Paket indirildikten sonra çift tıklayın. Kendisi zaten kurulacaktır.
Tekrar, çözümü yükleyip projede kullanmaya başlayın.
4.4 IronZIP web sitesinden doğrudan indirme
En son paketi doğrudan web sitesinden almak için bu bağlantıya tıklayın. İndirildikten sonra, paketi projeye eklemek için verilen prosedürleri izleyin.
- Çözüm penceresinden projeyi sağ tıklayarak seçin.
- İndirildikten sonra konumu gözden geçirip referansını seçin.
- Daha sonra referansı eklemek için Tamam'a tıklayın.
4.5 Asp.net core'da Dosyaları Zip'ten Çıkarma
ZIP arşivinden belirli bir dosyayı çıkarmak için dosya adını ve çıkartmak istediğiniz hedefi belirtmeniz gerekecektir.
İşte burada örnek kod:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public IActionResult OnPost()
{
try
{
// Retrieve the uploaded file from the form
var file = Request.Form.Files[0];
// Set the file path where the file will be saved
string filepath = @"C:\temp\uploads\";
// Save the uploaded file to the specified filepath
using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
{
file.CopyToAsync(stream);
}
// Extract the ZIP archive to the specified directory
string extractfile = @"C:\temp\extracted";
IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch (Exception ex)
{
// Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.");
return RedirectToAction("Error");
}
return RedirectToAction("Get");
}
}
}Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports IronZip
Namespace IronPDF_WebApp.Pages
Public Class IndexModel
Inherits PageModel
Private ReadOnly _logger As ILogger(Of IndexModel)
Public Sub New(ByVal logger As ILogger(Of IndexModel))
_logger = logger
End Sub
Public Function OnPost() As IActionResult
Try
' Retrieve the uploaded file from the form
Dim file = Request.Form.Files(0)
' Set the file path where the file will be saved
Dim filepath As String = "C:\temp\uploads\"
' Save the uploaded file to the specified filepath
Using stream = New FileStream(filepath & file.FileName, FileMode.Create)
file.CopyToAsync(stream)
End Using
' Extract the ZIP archive to the specified directory
Dim extractfile As String = "C:\temp\extracted"
IronZipArchive.ExtractArchiveToDirectory(filepath & file.FileName, extractfile)
Catch ex As Exception
' Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.")
Return RedirectToAction("Error")
End Try
Return RedirectToAction("Get")
End Function
End Class
End NamespaceYukarıdaki kodda, IronZIP ad alanının içeri aktarıldığından emin olun. IronZIP'in IronZipArchive sınıfında, ExtractArchiveToDirectory fonksiyonu bulunmaktadır. Bu, kaynak dosya sistemini ve zip'ten çıkarılmış dosyanın yolunu iki parametre olarak geçirmemizi sağlar. ZIPArchive zip dosyaları herhangi bir sayıda içerik barındırabilir ve içerikler buradan çıkarılarak dosya belirtilen bir dizine kaydedilebilir. Tek bir ZIP dosyasının içeriği için çıkarım noktası olarak kullanılan dizin yolu, ExtractArchiveToDirectory yöntemi tarafından gereken tek parametredir.
Bu fonksiyon, ZIP paketindeki tüm dosya ve dizinler üzerinde içten içe döngü yapıp içeriği belirlenmiş dizine çıkartır. Bir istisna çıkarsa, örneğin ZIP dosyası eksikse veya çıkartma işlemiyle ilgili bir problem varsa, dikkatlice bu durumu yönettiğinizden emin olun. İstisnalar, try-catch blokları kullanılarak yakalanabilir ve yönetilebilir. Kitlesel çıkarma işlemleri için, ExtractArchiveToDirectory yöntemi, ZIP arşivindeki tüm dosya ve dizinlerin çıkarılmasını yöneterek çıkarımı kolaylaştırır. ZIP dosyaları IronZIP genişletme yöntemi yardımıyla oluşturulabilir.
IronZIP kütüphanesi hakkında daha fazla okumak için buraya tıklayın.
5. Sonuç
Geliştiriciler, IronZIP kütüphanesiyle C# uygulamalarında ZIP dosyalarının sıkıştırma, çıkarma ve manipülasyon işlemlerini yönetebilirler. Karışık prosedürleri basitleştirip belirli dosyaları çıkarma, kitle verileri çıkarma, yeni girişler ekleyebilme ve mevcut arşivleri değiştirme gibi dosya işlemlerini daha kolay hale getiren, anlaşılır bir API kullanır.
Geliştiriciler bu kütüphaneyi kullanarak dosya yönetimi yeteneklerini sıfırdan başlamak zorunda kalmadan C# projelerinde geliştirebilirler. Sorunsuz entegre olur. Esnekliği sayesinde, uygulamanın farklı ihtiyaçlarına göre ZIP içeriği ile dinamik olarak dosya eklenebilir, değişebilir ve kaldırılabilir.
Eksik veya hasarlı ZIP dosyaları gibi durumlarda, güçlü istisna yönetim araçları tutarlı bir çalışma akışı sağlar ve hata düzeltmeyi kolaylaştırır. Geçmişte IronZIP .NET ayarlarında ZIP dosyalarını yönetmek için güvenilir bir çözüm sunmuş olabilir, ancak benim bilgilerim en son güncellemeleri yansıtmayabilir. IronZIP'in fiyatlandırması $999'den başlar ve ücretsiz bir geliştirici sürümü ile gelir. Lisans hakkında daha fazla bilgi almak için buraya başvurabiliriz. Iron Software ürünü için buraya bakın.

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


