Как извлечь RAR-файлы с помощью C#

Как извлечь RAR-файлы с помощью C#

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

Преимущества извлечения RAR-файлов

  1. Сжатие:
    • Формат RAR обычно обеспечивает лучшие коэффициенты сжатия по сравнению с ZIP.
  2. Многочастичные архивы:
    • RAR-файлы поддерживают многочастичные архивы, позволяя разбивать большие наборы данных на более мелкие файлы.
  3. Информация о файлах:
    • Позволяет получить доступ к различным деталям (размер, дата и т.д.) о файлах в архиве до извлечения.

Предварительные требования: Подготовка среды

  1. Установите Visual Studio или любую совместимую .NET IDE.
  2. Установите Aspose.ZIP из диспетчера пакетов NuGet.

Пошаговое руководство по извлечению RAR-файлов

Шаг 1: Установите Aspose.ZIP

Добавьте библиотеку Aspose.ZIP в ваш проект.

Install-Package Aspose.ZIP

Шаг 2: Загрузите RAR-файл

Загрузите исходный RAR-файл с помощью класса RarArchive.

using (RarArchive rarArchive = new RarArchive("Sample.rar"))
{
    // Шаги обработки будут следовать здесь
}

Шаг 3: Разберите записи

Пройдитесь по всем записям в архиве RAR.

foreach (var entry in rarArchive.Entries)
{
    // Дальнейшие шаги обработки следуют здесь
}

Шаг 4: Создайте FileStream

Создайте FileStream для каждой записи, чтобы записать извлеченные данные.

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

Шаг 5: Чтение байтов из записи

Прочитайте все байты из текущей записи и сохраните их в FileStream.

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);
    }
}

Шаг 6: Сохраните извлеченный файл

Убедитесь, что FileStream правильно сохранен и закрыт.

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

Полный пример кода для извлечения RAR-файлов

Вот полный пример, демонстрирующий, как извлекать RAR-файлы в C#:

// Загрузите RAR-файл
using (RarArchive rarArchive = new RarArchive("Sample.rar"))
{
    // Разберите все записи в архиве
    foreach (var entry in rarArchive.Entries)
    {
        // Создайте файл для каждой записи
        var file = File.Create(entry.Name);
        
        // Откройте запись архива и сохраните данные в файл
        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);
            }
        }

        // Закройте поток файла после сохранения
        file.Close();
    }
}

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

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

Заключение

Это руководство продемонстрировало, как извлекать RAR-файлы в C# с использованием Aspose.ZIP. Следуя изложенным шагам и образцу кода, вы можете бесшовно интегрировать функциональность извлечения RAR в ваши приложения. Для дальнейшего изучения рассмотрите возможность ознакомления с учебниками по сжатию файлов или извлечению других форматов архивов.

 Русский