Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Представляє один файл у архіві 7z.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Наслідування
Наслідники
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
Реалізує
Спадковані члени
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Примітки
Перетворіть екземпляр Aspose.Zip.SevenZip.SevenZipArchiveEntry на Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted, щоб визначити, чи зашифровано запис чи ні.
Конструктори
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Ініціалізує новий екземпляр класу Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Параметри
parent
SevenZipArchive
name
string
Ім’я запису.
compressionSettings
SevenZipCompressionSettings
Налаштування для стиснення або розпакування.
source
Stream
Потік з даними запису, які потрібно стиснути або розпакувати.
fileAttributes
FileAttributes
Атрибути з файлової системи.
fileInfo
FileSystemInfo
Інформація про файл або каталог, на основі якого створено запис.
Винятки
name
є null або порожнім.
Властивості
CompressedSize
Отримує розмір стисненого файлу.
public ulong CompressedSize { get; }
Значення властивості
CompressionSettings
Отримує налаштування для стиснення або розпакування.
public SevenZipCompressionSettings CompressionSettings { get; }
Значення властивості
FileAttributes
Отримує атрибути файлу з хост-системи.
protected FileAttributes FileAttributes { get; }
Значення властивості
IsDirectory
Отримує значення, яке вказує, чи представляє запис каталог.
public bool IsDirectory { get; }
Значення властивості
ModificationTime
Отримує дату та час останнього модифікації.
public DateTime ModificationTime { get; }
Значення властивості
Name
Отримує ім’я запису в архіві.
public string Name { get; protected set; }
Значення властивості
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
Опціональний пароль для розшифрування.
Повертає
Інформація про файл скомпонованого файлу.
Приклади
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
Винятки
path
є null.
У виклику немає необхідного дозволу для доступу.
path
є порожнім, містить лише пробіли або містить недопустимі символи.
Доступ до файлу path
заборонено.
Вказаний path
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах Windows шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за path
містить двокрапку (:) посередині рядка.
Архів пошкоджено.
Extract(Stream, string)
Витягує запис у наданий потік.
public void Extract(Stream destination, string password = null)
Параметри
destination
Stream
Потік призначення. Повинен бути записуваним.
password
string
Опціональний пароль для розшифрування.
Приклади
Витягти запис архіву zip з паролем.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Винятки
destination
не підтримує запис.
Архів не відкрито для витягування. - або - Цей запис є каталогом.
Неправильні дані в запису.
FinalizeCompressedData(Stream, byte[])
Записує у вихідний потік будь-які заголовки, що йдуть після стиснених даних.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Параметри
outputStream
Stream
Вихідний потік для запису.
encoderProperties
byte[]
Властивості компресора.
Повертає
Кількість “технічних” байтів, які були додані після значущого блоку даних запису.
GetDestinationStream(Stream)
Потік призначення для запису, може бути оформлений.
protected abstract Stream GetDestinationStream(Stream outputStream)
Параметри
outputStream
Stream
Вихідний потік для запису.
Повертає
Потік призначення для стиснення запису.
Open(string)
Відкриває запис для витягування і надає потік з вмістом запису.
public Stream Open(string password = null)
Параметри
password
string
Опціональний пароль для розшифрування.
Повертає
Потік, який представляє вміст запису.
Приклади
Використання:
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>
#### Примітки
Читання з потоку для отримання оригінального вмісту файлу. Див. розділ прикладів.
#### Винятки
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
Архів не відкрито для витягування. - або - Цей запис є каталогом.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Неправильні дані в запису.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Виникає, коли частина сирого потоку стиснена.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Тип події
EventHandler<ProgressEventArgs>
Приклади
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Примітки
Відправник події є екземпляром Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Не викликається в багатопотоковому режимі для записів LZMA2.