Class RarArchiveEntry

Class RarArchiveEntry

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

Представляет один файл в архиве.

public abstract class RarArchiveEntry : IArchiveFileEntry

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

objectRarArchiveEntry

Производные

RarArchiveEntryEncrypted, RarArchiveEntryPlain

Реализует

IArchiveFileEntry

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

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

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

ulong

CreationTime

Получает дату и время создания.

public DateTime CreationTime { get; }

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

DateTime

IsDirectory

Получает значение, указывающее, представляет ли элемент каталог.

public bool IsDirectory { get; }

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

bool

LastAccessTime

Получает дату и время последнего доступа.

public DateTime LastAccessTime { get; }

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

DateTime

ModificationTime

Получает дату и время последнего изменения.

public DateTime ModificationTime { get; }

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

DateTime

Name

Получает имя элемента в архиве.

public string Name { get; }

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

string

Source

Получает поток данных для элемента.

protected Stream Source { get; set; }

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

Stream

UncompressedSize

Получает размер оригинального файла.

public ulong UncompressedSize { get; }

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

ulong

Методы

Extract(string, string)

Извлекает элемент в файловую систему по указанному пути.

public FileInfo Extract(string path, string password = null)

Параметры

path string

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

password string

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

Возвращает

FileInfo

Информация о выходном файле.

Примеры

Извлечь два элемента из архива 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");
    }
}

Исключения

ArgumentNullException

path равно null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

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

FileNotFoundException

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

DirectoryNotFoundException

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

IOException

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

InvalidDataException

Данные повреждены. -или- Проверка 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$");
    }
}

Исключения

InvalidDataException

Проверка CRC или MAC для элемента не удалась.

ArgumentException

destination не поддерживает запись.

InvalidDataException

Данные повреждены. -или- Проверка CRC или MAC для элемента не удалась.

Open(string)

Открывает элемент для извлечения и предоставляет поток с содержимым распакованного элемента.

public Stream Open(string password = null)

Параметры

password string

Необязательный пароль для расшифровки. Его также можно установить в Aspose.Zip.Rar.RarArchiveLoadOptions.DecryptionPassword.

Возвращает

Stream

Поток, представляющий содержимое элемента.

Примеры

Использование: 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&gt;

Примеры

archive.Entries[0].ExtractionProgressed += (s, e) =&gt; { int percent = (int)((100 * e.ProceededBytes) / ((RarArchiveEntry)s).UncompressedSize); };

Примечания

Отправителем события является экземпляр Aspose.Zip.Rar.RarArchiveEntry.

 Русский