RarArchive.RarArchive

RarArchive(string, RarArchiveLoadOptions)

Инициализирует новый экземплярRarArchive список записей классов и композиций можно извлечь из архива.

public RarArchive(string path, RarArchiveLoadOptions loadOptions = null)
ПараметрТипОписание
pathStringПолный или относительный путь к файлу архива.
loadOptionsRarArchiveLoadOptionsОпции для загрузки существующего архива.

Исключения

исключениеусловие
ArgumentNullExceptionpath нулевой.
SecurityExceptionУ вызывающего абонента нет необходимого разрешения на доступ.
ArgumentExceptionpath пуст, содержит только пробелы или содержит недопустимые символы.
UnauthorizedAccessExceptionДоступ к файлуpath отказано.
PathTooLongExceptionУказанныйpath, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны содержать менее 248 символов, а имена файлов — менее 260 символов.
NotSupportedExceptionФайл вpath содержит двоеточие (:) в середине строки.

Примечания

Этот конструктор не распаковывает никакие записи. ВидетьOpen метод распаковки.

Примеры

В следующем примере извлекается архив, а затем распаковывается первая запись вПамятьПоток.

var extracted = new MemoryStream();
using (RarArchive archive = new RarArchive("data.rar"))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Смотрите также


RarArchive(Stream, RarArchiveLoadOptions)

Инициализирует новый экземплярRarArchive список записей классов и композиций можно извлечь из архива.

public RarArchive(Stream sourceStream, RarArchiveLoadOptions loadOptions = null)
ПараметрТипОписание
sourceStreamStreamИсточник архива.
loadOptionsRarArchiveLoadOptionsОпции для загрузки существующего архива.

Исключения

исключениеусловие
ArgumentExceptionsourceStream не доступен для поиска.
InvalidDataExceptionНеправильная подпись для архива. - или - Файл не является архивом RAR.
InvalidOperationException

Примечания

Этот конструктор не распаковывает никакие записи. ВидетьOpen метод распаковки.

Примеры

В следующем примере расшифровывается и распаковывается первая запись вПамятьПоток.

var fs = File.OpenRead("encrypted.rar");
var extracted = new MemoryStream();
using (RarArchive archive = new RarArchive(fs, new RarArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Смотрите также