Class RarArchiveEntry
Namespace: Aspose.Zip.Rar
Assembly: Aspose.Zip.dll (25.1.0)
Представляет один файл в архиве.
public abstract class RarArchiveEntry : IArchiveFileEntry
Наследование
Производные
RarArchiveEntryEncrypted, RarArchiveEntryPlain
Реализует
Унаследованные члены
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Примечания
Преобразуйте экземпляр Aspose.Zip.Rar.RarArchiveEntry в Aspose.Zip.Rar.RarArchiveEntryEncrypted, чтобы определить, зашифрован ли элемент или нет.
Свойства
CompressedSize
Получает размер сжатого файла.
public ulong CompressedSize { get; }
Значение свойства
CreationTime
Получает дату и время создания.
public DateTime CreationTime { get; }
Значение свойства
IsDirectory
Получает значение, указывающее, представляет ли элемент каталог.
public bool IsDirectory { get; }
Значение свойства
LastAccessTime
Получает дату и время последнего доступа.
public DateTime LastAccessTime { get; }
Значение свойства
ModificationTime
Получает дату и время последнего изменения.
public DateTime ModificationTime { get; }
Значение свойства
Name
Получает имя элемента в архиве.
public string Name { get; }
Значение свойства
Source
Получает поток данных для элемента.
protected Stream Source { get; set; }
Значение свойства
UncompressedSize
Получает размер оригинального файла.
public ulong UncompressedSize { get; }
Значение свойства
Методы
Extract(string, string)
Извлекает элемент в файловую систему по указанному пути.
public FileInfo Extract(string path, string password = null)
Параметры
path
string
Путь к выходному файлу. Если файл уже существует, он будет перезаписан.
password
string
Необязательный пароль для расшифровки.
Возвращает
Информация о выходном файле.
Примеры
Извлечь два элемента из архива rar.
using (FileStream rarFile = File.Open("archive.rar", FileMode.Open))
{
using (RarArchive archive = new RarArchive(rarFile))
{
archive.Entries[0].Extract("first.bin", "pass");
archive.Entries[1].Extract("second.bin", "pass");
}
}
Исключения
path
равно null.
У вызывающего нет необходимых разрешений для доступа.
path
пуст, содержит только пробелы или содержит недопустимые символы.
Доступ к файлу path
запрещен.
Указанный path
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть короче 248 символов, а имена файлов - короче 260 символов.
Файл по path
содержит двоеточие (:) в середине строки.
Файл не найден.
Указанный путь недействителен, например, находится на неотображаемом диске.
Файл уже открыт.
Данные повреждены. -или- Проверка CRC или MAC для элемента не удалась.
Extract(Stream, string)
Извлекает элемент в указанный поток.
public void Extract(Stream destination, string password = null)
Параметры
destination
Stream
Целевой поток. Должен быть записываемым.
password
string
Необязательный пароль для расшифровки.
Примеры
Извлечь элемент из архива rar с паролем.
using (FileStream rarFile = File.Open("archive.zip", FileMode.Open))
{
using (RarArchive archive = new RarArchive(rarFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Исключения
Проверка CRC или MAC для элемента не удалась.
destination
не поддерживает запись.
Данные повреждены. -или- Проверка CRC или MAC для элемента не удалась.
Open(string)
Открывает элемент для извлечения и предоставляет поток с содержимым распакованного элемента.
public Stream Open(string password = null)
Параметры
password
string
Необязательный пароль для расшифровки. Его также можно установить в Aspose.Zip.Rar.RarArchiveLoadOptions.DecryptionPassword.
Возвращает
Поток, представляющий содержимое элемента.
Примеры
Использование:
Stream decompressed = entry.Open();
.NET 4.0 и выше - используйте метод Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 и ранее - копируйте байты вручную:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Примечания
<p>Чтение из потока для получения оригинального содержимого файла. См. раздел примеров.</p>
### <a id="Aspose_Zip_Rar_RarArchiveEntry_ExtractionProgressed"></a> ExtractionProgressed
Срабатывает, когда извлекается часть необработанного потока.
```csharp
public event EventHandler<progresseventargs> ExtractionProgressed
Тип события
EventHandler<ProgressEventArgs>
Примеры
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((RarArchiveEntry)s).UncompressedSize); };
Примечания
Отправителем события является экземпляр Aspose.Zip.Rar.RarArchiveEntry.