Class RarArchive

Class RarArchive

Namespace: Aspose.Zip.Rar
Assembly: Aspose.Zip.dll (25.1.0)

Этот класс представляет файл архива RAR. Используйте его для извлечения архивов RAR.

public class RarArchive : IArchive, IDisposable

Наследование

objectRarArchive

Реализует

IArchive, IDisposable

Унаследованные члены

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Конструкторы

RarArchive(string, RarArchiveLoadOptions)

Инициализирует новый экземпляр класса Aspose.Zip.Rar.RarArchive и формирует список записей, которые могут быть извлечены из архива.

public RarArchive(string path, RarArchiveLoadOptions loadOptions = null)

Параметры

path string

Полный или относительный путь к файлу архива.

loadOptions RarArchiveLoadOptions

Опции для загрузки существующего архива.

Примеры

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

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

Замечания

Этот конструктор не распаковывает ни одной записи. См. метод Aspose.Zip.Rar.RarArchiveEntry.Open(System.String) для распаковки.

Исключения

ArgumentNullException

path равно null.

SecurityException

У вызывающего нет необходимых разрешений для доступа.

ArgumentException

path пуст, содержит только пробелы или недопустимые символы.

UnauthorizedAccessException

Доступ к файлу path запрещен.

PathTooLongException

Указанный path, имя файла или оба превышают максимально допустимую длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов должны быть короче 260 символов.

NotSupportedException

Файл по path содержит двоеточие (:) в середине строки.

FileNotFoundException

Файл не найден.

DirectoryNotFoundException

Указанный путь недействителен, например, находится на неотмеченном диске.

IOException

Файл уже открыт.

RarArchive(Stream, RarArchiveLoadOptions)

Инициализирует новый экземпляр класса Aspose.Zip.Rar.RarArchive и формирует список записей, которые могут быть извлечены из архива.

public RarArchive(Stream sourceStream, RarArchiveLoadOptions loadOptions = null)

Параметры

sourceStream Stream

Источник архива.

loadOptions RarArchiveLoadOptions

Опции для загрузки существующего архива.

Примеры

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

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

Замечания

Этот конструктор не распаковывает ни одной записи. См. метод Aspose.Zip.Rar.RarArchiveEntry.Open(System.String) для распаковки.

Исключения

ArgumentException

sourceStream не поддерживает позиционирование.

InvalidDataException

Неверная подпись для архива. - или - Файл не является архивом RAR.

Свойства

Entries

Получает записи типа Aspose.Zip.Rar.RarArchiveEntry, составляющие архив rar.

public ReadOnlyCollection<rararchiveentry> Entries { get; }

Значение свойства

ReadOnlyCollection<RarArchiveEntry&gt;

Методы

Dispose(bool)

Выполняет определенные приложением задачи, связанные с освобождением, высвобождением или сбросом неуправляемых ресурсов.

protected virtual void Dispose(bool disposing)

Параметры

disposing bool

Определяет, должны ли быть освобождены управляемые ресурсы.

Dispose()

Выполняет определенные приложением задачи, связанные с освобождением, высвобождением или сбросом неуправляемых ресурсов.

public void Dispose()

ExtractToDirectory(string, string)

Извлекает все файлы из архива в указанный каталог.

[Obsolete("Для извлечения зашифрованного RAR архива, пожалуйста, укажите пароль в конструкторе с Aspose.Zip.Rar.RarArchiveLoadOptions.DecryptionPassword")]
public void ExtractToDirectory(string destinationDirectory, string password = null)

Параметры

destinationDirectory string

Путь к каталогу, в который будут помещены извлеченные файлы.

password string

Необязательный пароль для расшифровки.

Примеры

using (var archive = new RarArchive("archive.rar")) 
{ 
   archive.ExtractToDirectory("C:\extracted", "$ecRet");
}

Замечания

Если каталог не существует, он будет создан.

Исключения

ArgumentNullException

destinationDirectory равно null.

PathTooLongException

Указанный путь, имя файла или оба превышают максимально допустимую длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов должны быть короче 260 символов.

SecurityException

У вызывающего нет необходимых разрешений для доступа к существующему каталогу.

NotSupportedException

Если каталог не существует, путь содержит двоеточие, которое не является частью метки диска (“C:").

ArgumentException

destinationDirectory является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы, используя метод System.IO.Path.GetInvalidPathChars. - или - путь начинается с, или содержит, только двоеточие (:).

IOException

Каталог, указанный по пути, является файлом. - или - Имя сети не известно.

ExtractToDirectory(string)

Извлекает все файлы из архива в указанный каталог.

public void ExtractToDirectory(string destinationDirectory)

Параметры

destinationDirectory string

Путь к каталогу, в который будут помещены извлеченные файлы.

Примеры

using (var archive = new RarArchive("archive.rar")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Замечания

Если каталог не существует, он будет создан.

Исключения

ArgumentNullException

destinationDirectory равно null.

PathTooLongException

Указанный путь, имя файла или оба превышают максимально допустимую длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов должны быть короче 260 символов.

SecurityException

У вызывающего нет необходимых разрешений для доступа к существующему каталогу.

NotSupportedException

Если каталог не существует, путь содержит двоеточие, которое не является частью метки диска (“C:").

ArgumentException

destinationDirectory является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы, используя метод System.IO.Path.GetInvalidPathChars. - или - путь начинается с, или содержит, только двоеточие (:).

IOException

Каталог, указанный по пути, является файлом. - или - Имя сети не известно.

 Русский