Как извлечь RAR-файлы с помощью C#
В этом руководстве мы рассмотрим процесс извлечения RAR-файлов с использованием C#. Этот учебник включает необходимые ресурсы для настройки среды разработки, исчерпывающий список шагов, подробно объясняющий программную логику, и исполняемый пример кода для распаковки RAR-файлов.
Преимущества извлечения RAR-файлов
- Сжатие:
- Формат RAR обычно обеспечивает лучшие коэффициенты сжатия по сравнению с ZIP.
- Многочастичные архивы:
- RAR-файлы поддерживают многочастичные архивы, позволяя разбивать большие наборы данных на более мелкие файлы.
- Информация о файлах:
- Позволяет получить доступ к различным деталям (размер, дата и т.д.) о файлах в архиве до извлечения.
Предварительные требования: Подготовка среды
- Установите Visual Studio или любую совместимую .NET IDE.
- Установите 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 в ваши приложения. Для дальнейшего изучения рассмотрите возможность ознакомления с учебниками по сжатию файлов или извлечению других форматов архивов.