Формат архива RAR

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

Информация об архиве RAR

Формат архива RAR, сокращение от «Архив Рошаля», представляет собой широко используемый и хорошо зарекомендовавший себя формат сжатия, предназначенный для уменьшения размера файлов и папок при сохранении их целостности. RAR, разработанный Евгением Рошалем, известен своей высокой степенью сжатия и поддержкой различных методов сжатия.

Архив RAR Формат файла История Информация

RAR был создан Евгением Рошалем в начале 1990-х годов. Первоначально он был представлен как собственный формат с упором на эффективное сжатие и восстановление ошибок. С годами RAR приобрел популярность благодаря своим исключительным возможностям сжатия и надежным функциям. Хотя исходный код RAR изначально был закрытым, с тех пор он был частично открыт, а алгоритмы распаковки стали доступны общественности. С 2013 года версия формата 5 стала опцией по умолчанию. Сжатие до устаревшей версии 4 по-прежнему возможно с помощью современного WinRAR.

Структура архива RAR

Архивы RAR структурированы как коллекции сжатых файлов и папок. Обычно они состоят из серии блоков, каждый из которых служит определенной цели в архиве. Эти блоки включают данные файлов, заголовки и дополнительные записи восстановления, которые можно использовать для восстановления поврежденных архивов. Большие архивы можно разделить на более мелкие части или снова объединить. Также можно создавать самораспаковывающиеся архивы.

Методы сжатия RAR

RAR имеет только один алгоритм сжатия. Формат поддерживает стойкое шифрование AES как для содержимого, так и для имен файлов. WinRAR позволяет создавать «надежные» архивы с более высокой степенью сжатия путем совместного анализа нескольких файлов. Устаревшая версия RAR4 дополнительно поддерживает специальное сжатие данных текста, аудио и изображений.

Операции, поддерживаемые архивом RAR

Aspose.ZIP позволяет пользователю извлечь конкретную запись или весь архив. Создание и изменение архива RAR не поддерживаются. Aspose.ZIP может извлекать современные версии архива RAR5 и устаревшие версии RAR4.

RAR-файл — Внутренняя структура

Архивы RAR имеют иерархическую внутреннюю структуру, состоящую из заголовков, сжатых данных и дополнительных записей для восстановления. Структура позволяет эффективно извлекать отдельные файлы без распаковки всего архива. Если архив зашифрован, он содержит заголовок шифрования. Основной заголовок включает дополнительный локатор для быстрого доступа к позициям различных служебных блоков без сканирования всего архива. Каждая запись имеет заголовок файла и службы. Эти заголовки содержат атрибуты файла и метаданные, включая контрольную сумму, системное время, имя и аналогичные сведения.

RAR-файл — Внутренняя структура

Популярность архива и поддержки RAR

Архивы RAR широко используются для сжатия и обмена файлами благодаря превосходной степени сжатия и универсальности. Они популярны как в экосистемах Windows, так и в macOS и пользуются мощной поддержкой различных программных инструментов. Хотя RAR не является полностью открытым исходным кодом, многочисленные сторонние приложения и библиотеки обеспечивают поддержку создания, извлечения и управления архивами RAR на разных платформах.

Примеры использования RAR

API Aspose.ZIP позволяет извлекать архивы в ваших приложениях без необходимости использования каких-либо других сторонних приложений. API Aspose.ZIP предоставляет класс RarArchive для работы с архивами RAR. PI предоставляет класс RarArchiveEntryclass для представления одного файла в архиве RAR.

Extract an RAR Entry

The following code example demonstrates how to extract an entry using RarArchive instance.

    using (RarArchive archive = new RarArchive("archive.rar"))
    {
        using (var destination = File.Create(dataDir + "firstEntry.txt"))
        {
                using (var source = archive.Entries[0].Open())
                {
                    byte[] buffer = new byte[1024];
                    int bytesRead;
                    while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)                       
                        destination.Write(buffer, 0, bytesRead);
                            
                }                    
        }
    }

Extract an Encrypted Entry

The following code example demonstrates how to extract an encrypted entry using RarArchive instance.

    FileInfo fi = new FileInfo("encrypted.rar");
    using (RarArchive archive = new RarArchive(fi.OpenRead()))
    {
        using (var destination = File.Create(dataDir + "firstEntry.txt"))
        {
            archive.Entries[0].Extract(destination, "p@s$w0rd");                
        }
    }

Extracting Compressed Directory

The following code example demonstrates how to all the files from RarArchive instance.

    using (RarArchive archive = new RarArchive("archive.rar"))
    {
        archive.ExtractToDirectory("extracted");
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Дополнительная информация о RAR-архивах

Часто Задаваемые Вопросы

1. Является ли RAR более эффективным, чем ZIP?

Является ли RAR более эффективным, чем ZIP , зависит от конкретного варианта использования и типа сжимаемых данных. И RAR, и ZIP являются популярными форматами архивов, но они имеют некоторые различия с точки зрения эффективности сжатия, функций и совместимости.

2. Как составить RAR-архив?

Единственный инструмент, позволяющий композицию, — это WinRAR. Вы не найдете другого программного обеспечения или библиотеки, поскольку такова лицензия RAR .

3. Все ли файлы RAR безопасны?

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