Altbilgi içeriğine atla
IRONZIP KULLANıMı

C#'ta ZIP Dosyası Nasıl Açılır

ZIP, kayıpsız veri sıkıştırmayı destekleyen bir arşiv giriş dosyası sistem formatıdır. Bir ZIP dosyası, bir veya daha fazla dosya veya sıkıştırılmış olabilecek dizin içerebilir. ZIP dosya formatı, çeşitli sıkıştırma algoritmalarına izin verir, ancak DEFLATE en yaygın olandır. ZIP formatı hızlı bir şekilde birçok yazılım aracı tarafından desteklendi. Önde gelen işletim sistemi sağlayıcıları uzun zamandır ZIP arşiv desteği sağladı. Microsoft, Windows 98'den itibaren ZIP dosya desteği sağladı ve geri kalanlar aynı yolu izledi.

Bu blogda, IronZIP kullanarak ZIP arşiv dosyalarını veya ayıklanmış dosyaları açmanın modern, kolay ve verimli bir yolunu keşfedeceğiz. Genel olarak ZIP dosyalarını ve onların avantajlarını öğreniyoruz. Daha sonra, ZIP dosya formatıyla çalışmak için sistem ad alanında bulunan seçenekleri göreceğiz. Sonra adım adım ZIP dosyasını açma talimatlarını, ZIP dosyasını bir geçici klasöre ayıklama, yeni bir ZIP dosyası oluşturma ve mevcut ZIP dosyalarına dosya ekleme adımlarını inceleyeceğiz.

Yazılım Uygulamalarında ZIP Dosyalarının Kullanım Avantajları

  1. Sıkıştırma: Bu teknik, Implode, Deflate, Deflate64, bzip2, LZMA, WavPack, PPMd gibi çeşitli sıkıştırma algoritmalarını kullanarak arşivlenmiş dosyaların/dizinlerin boyutunu küçültür.
  2. Azaltılmış Transfer Süresi: Daha küçük dosya boyutları, özellikle İnternet üzerinden dosya gönderimi sırasında, daha hızlı transfer süreleri anlamına gelir. Bu, e-posta ekleri ve websitelerinden dosya yükleme veya indirme için özellikle avantajlıdır.
  3. Dosyaların Konsolide Edilmesi: ZIP dosyaları, birden fazla dosyayı tek bir arşive konsolide etmenizi sağlar, yönetmeniz gereken dosya sayısını azaltır. Bu, birden çok dosya içeren projeleri düzenlemek veya yazılım dağıtımında kullanışlıdır.
  4. Şifre Koruması: Birçok ZIP aracı, arşivi şifre koruma seçeneği sunar, dosyalarınıza bir güvenlik katmanı ekler. Bu, ZIP dosyasının içeriğine erişimi sınırlamak istediğinizde kullanışlıdır.

IronZIP Kullanarak ZIP Arşivleri Oluşturma ve ZIP Dosyalarını Ayıklama

IronZIP kütüphanesinin ve dokümantasyonu burada bulunabilir burada. C# uygulamalarında, ZIP dosyaları çeşitli yollarla oluşturulabilir ve ayıklanabilir. IronZIP NuGet paketi, ZIP, TAR, GZIP ve BZIP2 gibi farklı formatlarda dosyaları arşivlemek için tüm işlevselliklere sahiptir. Aşağıda, modern uygulama programlamasında ZIP dosyası açmak, ZIP dosyası ayıklamak, yeni ZIP dosyası oluşturmak vb. için IronZIP'in nasıl kullanılacağına dair örnek adımlar verilmiştir.

Adım 1. .NET Core Konsol Uygulaması Oluşturun

Proje oluştur

.NET konsol uygulaması Visual Studio kullanılarak oluşturulabilir. Visual Studio'yu açın ve Proje oluştur seçeneğini seçin. Burada, bir proje oluşturmak için çeşitli şablonları görebilirsiniz. Kodu göstermek veya test etmek için en kolay yol, bir konsol uygulaması oluşturmak. Konsol Uygulaması proje şablonunu seçeceğiz.

C#'da Zip Dosyasını Açma: Şekil 1 - Yeni Proje

Proje adını girin

Aşağıdaki pencerede, proje adını, dosya sisteminde kaydedilecek projeyin konumunu ve son olarak çözüm klasörünün yolunu girin. Çözüm ve proje klasörlerini aynı veya farklı klasörlerde tutabilirsiniz.

C#'da Zip Dosyasını Açma: Şekil 2 - Projeyi Yapılandır

.NET Framework sürümünü seçin

Bir sonraki adım, proje için .NET Framework sürümünü seçmektir. Belirli bir sürümde geliştirme yapmak isterseniz, istediğiniz sürümü belirtin. Aksi halde, her zaman proje oluşturmak için en son kararlı sürümü seçin. En son sürüm, Microsoft web sitesinden indirilebilir. Ardından konsol uygulamasını oluşturmak için oluştur tuşuna tıklayın.

C#'da Zip Dosyasını Açma: Şekil 3 - Hedef Framework

Bu, şablondan varsayılan projeyi oluşturacak ve proje ve çözüm dosyalarını belirtilen dizinlerde saklayacaktır. Proje oluşturulduktan sonra aşağıdakine benzer görünecektir. Bazen sınıf en son sürümlerdeki program.cs kullanılmaz.

// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
' Import necessary namespaces
Imports System

' Define the namespace
Namespace MyApp ' Note: actual namespace depends on the project name.
	' Define the Program class
	Friend Class Program
		' Main method: Entry point of the application
		Shared Sub Main(ByVal args() As String)
			' Print a welcome message
			Console.WriteLine("Hello, World!")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Yeni bir ZIP dosyası oluşturmak ve tüm ZIP arşiv dosyalarını ayıklamak için, varsayılan kütüphanelerden System.IO.Compression kullanabiliriz. Aşağıdaki kod, ZIP dosyalarını açmak veya ZIP dosyalarını çıkarmak için ZipFile.OpenRead ve ZipFile.Open statik yöntemlerinin nasıl kullanılacağını göstermektedir.

// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
' Import necessary namespaces
Imports System
Imports System.IO
Imports System.IO.Compression

Public Class ZipExample
	Public Shared Sub Main()
		Console.WriteLine("-----------Zip - Unzip-----------")

		' Method to add a file entry to the ZIP archive
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'		static void AddEntry(string filePath, ZipArchive zipArchive)
'		{
'			' Get file name from the file path
'			var file = Path.GetFileName(filePath);
'
'			' Create a new entry in the ZIP archive for the file
'			zipArchive.CreateEntryFromFile(filePath, file);
'		}

		' Name of the ZIP file to be created
		Dim zip = "myFile.zip"

		' Open or create the ZIP file for updating
		Using archive As ZipArchive = ZipFile.Open(zip, ZipArchiveMode.Update)
			' Add files to the archive
			AddEntry("file1.txt", archive)
			AddEntry("file2.txt", archive)
		End Using

		' Directory where we want to extract the ZIP files
		Dim dirToExtract = "extract"

		' Create the directory if it does not exist
		If Not Directory.Exists(dirToExtract) Then
			Directory.CreateDirectory(dirToExtract)
		End If

		' Extract the contents of the ZIP file to the specified directory
		ZipFile.ExtractToDirectory(zip, dirToExtract)

		' Indicate that extraction is complete
		Console.WriteLine("Files extracted to: " & dirToExtract)
	End Sub
End Class
$vbLabelText   $csharpLabel

Yukarıdaki kodda, sistem isim alanıyla kullanılan myFile.zip adlı bir ZIP dosyası kullanılır. Open yöntemi, ZIP dosyasını belirli bir modda açmak için kullanılır. Bu aynı zamanda yeni ZIP arşiv dosyalarını oluşturmak için de kullanılabilir. Açıldıktan sonra, AddEntry yöntemi kullanılarak yeni bir arşiv girdisi ekleyebiliriz ve ardından ExtractToDirectory, ZIP arşiv dosyalarını belirlenen dizine çıkarır. Eğer dizin mevcut değilse, Directory.CreateDirectory kullanılarak oluşturulur.

Adım 2. NuGet Paket Yöneticisi kullanarak IronZIP'i Yükleyin

Visual Studio'dan Proje Yöneticisini açın ve IronZIP paketini arayın. Sonra en son sürümü seçin ve Yükle tuşuna basın. Yüklenecek sürümü açılır menüden değiştirebilirsiniz. Sonra Yükle tuşuna basın.

C#'da Zip Dosyasını Açma: Şekil 4 - NuGet Paket Yöneticisi

ZIP Arşiv Dosyası Oluşturun ve Dosyaları IronZIP Kullanarak Ekleyin

C#'da Zip Dosyasını Açma: Şekil 5 - IronZIP

IronZIP, Iron Software tarafından geliştirilen bir arşiv sıkıştırma ve ayıklama kütüphanesidir. Geniş çapta kullanılan ZIP formatına ek olarak TAR, GZIP ve BZIP2 formatlarını da işleyebilir.

IronZIP, doğruluk, kullanım kolaylığı ve hız öncelikli bir C# ZIP Arşiv Kütüphanesidir. Kullanıcı dostu API'si, geliştiricilerin modern .NET projelerine arşiv işlevselliğini dakikalar içinde eklemesini sağlar.

IronZIP, System.IO.Compression kütüphanesine kıyasla birçok avantaj sunar. Sıkıştırma sırasında istediğiniz sıkıştırma oranını belirtebilir ve ZIP, TAR, GZIP, BZIP2 gibi farklı sıkıştırma algoritmaları kullanabilirsiniz. Ayrıca mobil, web ve masaüstü platformlarını ve çeşitli .NET sürümlerini destekler.

// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
' Setup: Specify the path for the new ZIP archive
Dim archivePath = "ironZip.zip"

' Check if the archive already exists, and delete it if so
If File.Exists(archivePath) Then
	File.Delete(archivePath)
End If

' Use IronZIP library to create a new ZIP archive
Using archive = New IronZipArchive(9) ' Compression level: 9 for maximum compression
	' Add files to the ZIP archive
	archive.Add("file1.txt")
	archive.Add("file2.txt")

	' Save the archive to the specified path
	archive.SaveAs(archivePath)
End Using
$vbLabelText   $csharpLabel

İlk kaynak kodu, ZIP arşiv dosyasının adını belirterek ve belirtilen dizinin var olup olmadığını kontrol ederek ayarlanır. Daha sonra dosyaları arşivleyerek Add yöntemiyle bir ZIP dosyası oluştururuz. Sıkıştırma parametresindeki ikinci parametre, daha düşük için 1 ve daha yüksek için 9'dur. Metin dosyaları, kayıpsız olarak maksimum 9'a sıkıştırılabilir ve veri kaybını önlemek için daha düşük sıkıştırma kullanılarak görüntü dosyaları kullanılabilir.

ZIP Arşiv Dosyasını IronZIP Kullanarak Açın

IronArchive sınıfı, ZIP arşiv dosyasından dosyaları çıkarmak için de kullanılabilir. Tüm dosyalar, belirli dizinlere aşağıda gösterildiği gibi çıkarmayı sağlayan IronArchive.ExtractArchiveToDirectory ile çıkarılır.

// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
' Directory to extract all files from the ZIP archive
Dim extractionPath = "IronZipFiles"

' Check if the directory exists; if not, create it
If Not Directory.Exists(extractionPath) Then
	Directory.CreateDirectory(extractionPath)
End If

' Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath)
$vbLabelText   $csharpLabel

Yukarıdaki kod, ZIP dosyalarını bir dizine ayıklar. Kod, dizinin var olup olmadığını kontrol eder ve eğer yoksa, ZIP arşiv dosyası belirtilen dizine ayıklanır.

Lisanslama (Ücretsiz Deneme Mevcuttur)

Yukarıdaki kodun çalışması için bir lisans anahtarı gereklidir. Bu anahtar appsettings.json içine yerleştirilmelidir.

{
    "IronZip.LicenseKey": "your license key"
}

Aşağıdaki URL'den kayıt olarak burada bir deneme lisansı kullanılabilir, evet, deneme lisansı için kredi kartı gerekmez. Bir kişi e-posta kimliğini sağlayabilir ve ücretsiz bir deneme için kayıt yapabilir.

Mevcut Bir ZIP Arşiv Dosyasına Dosya Ekleme

IronZIP ile mevcut bir arşivi açmak için FromFile statik yöntemini kullanın. Bu yöntem ayrıca çıkış olarak oluşturulacak yeni arşivin dosya adının belirtmesini gerektirir.

// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
' Path to a new file to be added to the existing ZIP archive
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"

' Open the existing ZIP archive and add a new file
Using file = IronArchive.FromFile("ironZip.zip", archivePlusPath)
	' Add additional files to the existing archive
	file.Add(file3)
End Using
$vbLabelText   $csharpLabel

Kod, mevcut ZIP dosyasını açmak ve ardından yeni dosyayı bir arşiv girdisi olarak eklemek için IronArchive.FromFile statik yöntemini kullanır. Dosya nesnesi elden çıkarıldıktan sonra güncellenmiş arşiv başarıyla kaydedilir.

Güncellemeler

IronZIP kütüphanesi, müşterilerden/kullanıcılardan gelen geri bildirimlere dayanarak sürekli güncellenir ve tüm güncellemeler burada bulunabilir.

Sonuç

Sonuç olarak, ZIP dosyası programlama, modern uygulama geliştirmede bulut sunucu sağlayıcıları tarafından depolama ve veri transfer maliyetleriyle ücretlendirildiğinde oluşturulması gereken önemli bir beceridir. Bu beceriyi bilmek, programcıların uygulamanın maliyetini azaltmasına ve performansını iyileştirmesine yardımcı olabilir.

Kurulum adımlarını izleyerek ve sağlanan kod örneklerini keşfederek, geliştiriciler IronZIP ile ZIP görevlerini kolaylıkla halletmek için hızlıca faydalanabilirler. Daha fazla ve daha fazla uygulama modernize edilip buluta taşındıkça, IronZIP gibi güvenilir bir ZIP kütüphanesine sahip olmak, C# geliştiricilerine modern uygulama geliştirme taleplerini karşılamak için gerekli araçları sağlar. IronZIP gücünü kucaklayın ve C# uygulamalarınızda ZIP dosyalarıyla çalışmada yeni olanakların kapılarını açın.

IronZIP, geliştiricilerine geniş destek sunar. C# için IronZIP'in nasıl çalıştığı hakkında daha fazla bilgi edinmek için burayı ziyaret edin. IronZIP ücretsiz bir deneme lisansı sunar ki bu, IronZIP'i ve özelliklerini tanımanın harika bir fırsatıdır.

Iron Software çeşitli başka kütüphanelere sahiptir, onları keşfederek modern uygulamalar programlayıp/geliştirmek için daha fazla bilgi edinin ve becerilerinizi güncelleyin.

Sıkça Sorulan Sorular

C# ile bir ZIP dosyasını nasıl açarım?

C# içinde System.IO.Compression kütüphanesini kullanarak bir ZIP dosyası açabilirsiniz. Alternatif olarak, IronZIP arşivlerinizi yönetmek için daha kolay ve verimli bir yol sunarak ZIP dosyalarını işlemek için gelişmiş işlevsellik sağlar.

C# kullanarak bir ZIP arşivinden dosyaları nasıl çıkarabilirim?

IronZIP ile, bir ZIP arşivinden dosyaları çıkarmak için IronArchive.ExtractArchiveToDirectory yöntemini kullanabilirsiniz. Bu yöntem, ZIP dosyasını ve çıkarma hedef dizinini belirtmenizi gerektirir.

Uygulama geliştirmede ZIP dosyalarını kullanmanın faydaları nelerdir?

ZIP dosyaları, dosya boyutlarını küçültür, bu da daha hızlı transfer sürelerine ve birden fazla dosyayı tek bir arşivde birleştirme yeteneğine yol açar. IronZIP, sıkıştırma oranlarını belirleme ve birden fazla formatı destekleme gibi ek özelliklerle bu avantajları artırır.

C# kullanarak mevcut bir ZIP arşivine dosyaları nasıl eklerim?

IronZIP kullanarak mevcut bir ZIP arşivine dosya eklemek için, arşivi açmak için IronArchive.FromFile yöntemini kullanın ve ardından yeni dosyalar eklemek için Add yöntemini kullanın. Süreci tamamlamak için güncellenmiş arşivi kaydedin.

IronZIP kullanarak yeni bir ZIP dosyası oluşturabilir ve dosyalar ekleyebilir miyim?

Evet, IronZIP kullanarak yeni bir ZIP dosyası oluşturabilir ve Add yöntemiyle dosya ekleyebilirsiniz. Arşivi daha sonra SaveAs yöntemiyle kaydedin.

IronZIP'i NuGet Paket Yöneticisi kullanarak nasıl yükleyebilirim?

NuGet Paket Yöneticisi kullanarak IronZIP'i kurmak için, Visual Studio'da Proje Yöneticisini açın, IronZIP için arama yapın, en son sürümü seçin ve Kur'a tıklayın. Bu işlem, projenize IronZIP ekleyerek ZIP dosya yönetimini etkinleştirir.

IronZIP birden fazla sıkıştırma formatını destekliyor mu?

Evet, IronZIP ZIP, TAR, GZIP ve BZIP2 dâhil olmak üzere birden fazla sıkıştırma formatını destekler ve bu da çeşitli uygulama ihtiyaçları için esneklik sağlar.

IronZIP için ücretsiz bir deneme sürümü var mı?

Evet, IronZIP geliştiricilere ücretsiz deneme sunar. Kredi kartı bilgisi gerektirmeden denemeye erişmek için Iron Software web sitesinde kayıt olabilirsiniz.

IronZIP'i modern uygulama geliştirme için uygun bir seçim yapan nedir?

IronZIP kullanıcı dostu, hızlı ve çapraz platform uyumlu olarak bilinir. Bu özellikler, ileri düzey fonksiyonlarla birlikte, modern uygulama geliştirme için ideal bir seçim yapar.

Curtis Chau
Teknik Yazar

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ı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara