Class RarArchive
Namespace: Aspose.Zip.Rar
Assembly: Aspose.Zip.dll (25.1.0)
Этот класс представляет файл архива RAR. Используйте его для извлечения архивов RAR.
public class RarArchive : 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) для распаковки.
Исключения
path
равно null.
У вызывающего нет необходимых разрешений для доступа.
path
пуст, содержит только пробелы или недопустимые символы.
Доступ к файлу path
запрещен.
Указанный path
, имя файла или оба превышают максимально допустимую длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов должны быть короче 260 символов.
Файл по path
содержит двоеточие (:) в середине строки.
Файл не найден.
Указанный путь недействителен, например, находится на неотмеченном диске.
Файл уже открыт.
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) для распаковки.
Исключения
sourceStream
не поддерживает позиционирование.
Неверная подпись для архива. - или - Файл не является архивом RAR.
Свойства
Entries
Получает записи типа Aspose.Zip.Rar.RarArchiveEntry, составляющие архив rar.
public ReadOnlyCollection<rararchiveentry> Entries { get; }
Значение свойства
ReadOnlyCollection<RarArchiveEntry>
Методы
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");
}
Замечания
Если каталог не существует, он будет создан.
Исключения
destinationDirectory
равно null.
Указанный путь, имя файла или оба превышают максимально допустимую длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов должны быть короче 260 символов.
У вызывающего нет необходимых разрешений для доступа к существующему каталогу.
Если каталог не существует, путь содержит двоеточие, которое не является частью метки диска (“C:").
destinationDirectory
является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы, используя метод System.IO.Path.GetInvalidPathChars. - или - путь начинается с, или содержит, только двоеточие (:).
Каталог, указанный по пути, является файлом. - или - Имя сети не известно.
ExtractToDirectory(string)
Извлекает все файлы из архива в указанный каталог.
public void ExtractToDirectory(string destinationDirectory)
Параметры
destinationDirectory
string
Путь к каталогу, в который будут помещены извлеченные файлы.
Примеры
using (var archive = new RarArchive("archive.rar"))
{
archive.ExtractToDirectory("C:\extracted");
}
Замечания
Если каталог не существует, он будет создан.
Исключения
destinationDirectory
равно null.
Указанный путь, имя файла или оба превышают максимально допустимую длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов должны быть короче 260 символов.
У вызывающего нет необходимых разрешений для доступа к существующему каталогу.
Если каталог не существует, путь содержит двоеточие, которое не является частью метки диска (“C:").
destinationDirectory
является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы, используя метод System.IO.Path.GetInvalidPathChars. - или - путь начинается с, или содержит, только двоеточие (:).
Каталог, указанный по пути, является файлом. - или - Имя сети не известно.