Class SevenZipArchiveEntry

Class SevenZipArchiveEntry

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

Представляє один файл у архіві 7z.

public abstract class SevenZipArchiveEntry : IArchiveFileEntry

Наслідування

objectSevenZipArchiveEntry

Наслідники

SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain

Реалізує

IArchiveFileEntry

Спадковані члени

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

Інформація про файл або каталог, на основі якого створено запис.

Винятки

ArgumentException

name є null або порожнім.

Властивості

CompressedSize

Отримує розмір стисненого файлу.

public ulong CompressedSize { get; }

Значення властивості

ulong

CompressionSettings

Отримує налаштування для стиснення або розпакування.

public SevenZipCompressionSettings CompressionSettings { get; }

Значення властивості

SevenZipCompressionSettings

FileAttributes

Отримує атрибути файлу з хост-системи.

protected FileAttributes FileAttributes { get; }

Значення властивості

FileAttributes

IsDirectory

Отримує значення, яке вказує, чи представляє запис каталог.

public bool IsDirectory { get; }

Значення властивості

bool

ModificationTime

Отримує дату та час останнього модифікації.

public DateTime ModificationTime { get; }

Значення властивості

DateTime

Name

Отримує ім’я запису в архіві.

public string Name { get; protected set; }

Значення властивості

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

Інформація про файл скомпонованого файлу.

Приклади

using (var archive = new SevenZipArchive("archive.7z"))
{
    archive.Entries[0].Extract("data.bin");
}

Винятки

ArgumentNullException

path є null.

SecurityException

У виклику немає необхідного дозволу для доступу.

ArgumentException

path є порожнім, містить лише пробіли або містить недопустимі символи.

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

Файл за path містить двокрапку (:) посередині рядка.

InvalidDataException

Архів пошкоджено.

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

Винятки

ArgumentException

destination не підтримує запис.

InvalidOperationException

Архів не відкрито для витягування. - або - Цей запис є каталогом.

InvalidDataException

Неправильні дані в запису.

FinalizeCompressedData(Stream, byte[])

Записує у вихідний потік будь-які заголовки, що йдуть після стиснених даних.

protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)

Параметри

outputStream Stream

Вихідний потік для запису.

encoderProperties byte[]

Властивості компресора.

Повертає

int

Кількість “технічних” байтів, які були додані після значущого блоку даних запису.

GetDestinationStream(Stream)

Потік призначення для запису, може бути оформлений.

protected abstract Stream GetDestinationStream(Stream outputStream)

Параметри

outputStream Stream

Вихідний потік для запису.

Повертає

Stream

Потік призначення для стиснення запису.

Open(string)

Відкриває запис для витягування і надає потік з вмістом запису.

public Stream Open(string password = null)

Параметри

password string

Опціональний пароль для розшифрування.

Повертає

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>

#### Примітки

Читання з потоку для отримання оригінального вмісту файлу. Див. розділ прикладів.

#### Винятки

 [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&gt;

Приклади

archive.Entries[0].CompressionProgressed += (s, e) =&gt; { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };

Примітки

Відправник події є екземпляром Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Не викликається в багатопотоковому режимі для записів LZMA2.

 Українська