Как да извлечем RAR файлове с C#

Как да извлечем RAR файлове с C#

В това ръководство ще разгледаме процеса на извличане RAR файлове с C#. Това ръководство включва необходимите ресурси за настройване на средата за разработка, изчерпателен списък от стъпки, който обяснява логиката на програмирането, и изпълним примерен код за разархивиране на RAR файлове.

Ползи от извличането на файлове RAR

  1. Компресия:
  • RAR форматът обикновено осигурява по-добри коефициенти на компресия в сравнение с ZIP.
  1. Мултичастични архиви:
  • RAR файловете поддържат многочастични архиви, позволявайки големи набори от данни да се разделят на по-малки файлове.
  1. Информация за файла:
  • Позволява ви да достъпвате различни детайли (размер, дата и др.) за файловете в архива преди извличане.

Prerequisites: Preparing the Environment

  1. Настройте Visual Studio или всяка съвместима .NET IDE.
  2. Инсталирайте Aspose.ZIP от NuGet Package Manager.

Ръководство стъпка по стъпка за извличане на RAR файлове

Стъпка 1: Инсталирайте Aspose.ZIP

Добавете библиотеката Aspose.ZIP към вашия проект.

Install-Package Aspose.ZIP

Стъпка 2: Заредете RAR файла

Заредете изходния RAR файл, като използвате RarArchive клас.

using Aspose.Zip;
using Aspose.Zip.Rar;

using (RarArchive rarArchive = new RarArchive("Sample.rar"))
{
    // Processing steps will follow here
}

Стъпка 3: Обработете записите

Обхождайте всички записи в архива RAR.

foreach (var entry in rarArchive.Entries)
{
    // Further processing steps follow here
}

Стъпка 4: Създайте FileStream

Създайте FileStream за всеки запис, за да запишете извлечените данни.

var file = File.Create(entry.Name);

Стъпка 5: Прочетете байтовете от записа

Прочетете всички байтове от текущия запис и ги запазете в FileStream.

using Aspose.Zip.Rar;
// Load the RAR file
using (RarArchive rarArchive = new RarArchive("Sample.rar"))
{
    // Parse all entries in the archive
    foreach (var entry in rarArchive.Entries)
    {
        // Create a file for each entry
        var file = File.Create(entry.Name);
        
        // Open the archive entry and save data to the file
        using (var fileEntry = entry.Open())
        {
            byte[] data = new byte[1024];
            int bytesCount;
            while ((bytesCount = fileEntry.Read(data, 0, data.Length)) > 0)
            {
                file.Write(data, 0, bytesCount);
            }
        }

        // Close the file stream after saving
        file.Close();
    }
}

Стъпка 6: Запазване на извлечения файл

Уверете се, че FileStream е правилно запазен и затворен.

file.Close();
file.Dispose();

Пълен пример с код за извличане на файлове RAR

Ето пълен пример, който демонстрира как да извлечете файлове RAR в C#:

using Aspose.Zip.Rar;
// Load the RAR file
using (RarArchive rarArchive = new RarArchive("Sample.rar"))
{
    // Parse all entries in the archive
    foreach (var entry in rarArchive.Entries)
    {
        // Create a file for each entry
        var file = File.Create(entry.Name);
        
        // Open the archive entry and save data to the file
        using (var fileEntry = entry.Open())
        {
            byte[] data = new byte[1024];
            int bytesCount;
            while ((bytesCount = fileEntry.Read(data, 0, data.Length)) > 0)
            {
                file.Write(data, 0, bytesCount);
            }
        }

        // Close the file stream after saving
        file.Close();
    }
}

Допълнителна информация

  • Можете да филтрирате файловете въз основа на различни критерии, като размер или дата, преди извличане.
  • Библиотеката Aspose.ZIP поддържа различни архивни формати, което позволява гъвкаво манипулиране на файлове.

Заключение

Този наръчник демонстрира как да извлечете файлове RAR в C# с помощта на Aspose.ZIP. Следвайки описаните стъпки и примерния код, можете безпроблемно да интегрирате функционалност за извличане на RAR във вашите приложения. За по-нататъшно проучване, разгледайте уроци за компресиране на файлове или извличане на други архивни формати.

 Български