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.