Class ArchiveEntry

Class ArchiveEntry

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

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

public abstract class ArchiveEntry : IArchiveFileEntry

Спадкування

objectArchiveEntry

Наслідок

ArchiveEntryEncrypted, ArchiveEntryPlain

Реалізує

IArchiveFileEntry

Спадковані учасники

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Примітки

Перетворіть екземпляр Aspose.Zip.ArchiveEntry на Aspose.Zip.ArchiveEntryEncrypted, щоб визначити, чи є запис зашифрованим чи ні.

Конструктори

ArchiveEntry(string, CompressionSettings, Func<stream>, FileAttributes)

Ініціалізує новий екземпляр класу Aspose.Zip.ArchiveEntry.

protected ArchiveEntry(string name, CompressionSettings compressionSettings, Func<stream> sourceProvider, FileAttributes fileAttributes)

Параметри

name string

Ім’я запису.

compressionSettings CompressionSettings

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

sourceProvider Func<Stream&gt;

Метод, що повертає потік з даними запису, які потрібно стиснути.

fileAttributes FileAttributes

Атрибути з файлової системи.

ArchiveEntry(string, CompressionSettings, Stream, FileAttributes, FileSystemInfo)

Ініціалізує новий екземпляр класу Aspose.Zip.ArchiveEntry.

protected ArchiveEntry(string name, CompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)

Параметри

name string

Ім’я запису.

compressionSettings CompressionSettings

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

source Stream

Потік з даними запису, які потрібно стиснути або розпакувати.

fileAttributes FileAttributes

Атрибути з файлової системи.

fileInfo FileSystemInfo

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

Властивості

Comment

Отримує коментар до запису в архіві.

public string Comment { get; protected set; }

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

string

CompressedSize

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

public ulong CompressedSize { get; }

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

ulong

CompressionSettings

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

public CompressionSettings CompressionSettings { get; }

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

CompressionSettings

DataSource

Джерело для запису, якщо запис було додано до архіву, а не вилучено.

public Stream DataSource { get; }

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

Stream

Примітки

Перед присвоєнням джерело є null. Це джерело може бути присвоєно в методі Archive.Save у деяких випадках.

FileAttributes

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

protected FileAttributes FileAttributes { get; }

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

FileAttributes

IsDirectory

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

public bool IsDirectory { get; }

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

bool

ModificationTime

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

public DateTime ModificationTime { get; set; }

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

DateTime

Name

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

public string Name { get; protected set; }

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

string

UncompressedSize

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

public ulong UncompressedSize { get; }

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

ulong

Методи

Extract(string, string)

Витягує запис на файлову систему за вказаним шляхом.

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

Параметри

path string

Шлях до файлу призначення. Якщо файл вже існує, він буде перезаписаний.

password string

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

Повертає

FileInfo

Інформація про складений файл.

Приклади

Витягніть два записи з zip-архіву, кожен з власним паролем

using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
    using (Archive archive = new Archive(zipFile))
    {
        archive.Entries[0].Extract("first.bin", "first_pass");
        archive.Entries[1].Extract("second.bin", "second_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

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

Приклади

Витягніть запис з zip-архіву з паролем.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
    using (Archive archive = new Archive(zipFile))
    {
        archive.Entries[0].Extract(httpResponseStream, "p@s$");
    }
}

Виключення

InvalidDataException

Дані пошкоджені. -або- Перевірка CRC або MAC не вдалася для запису.

IOException

Джерело пошкоджене або недоступне для читання.

ArgumentException

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

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 &lt; (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
 fileStream.Write(buffer, 0, bytesRead);
```</p>

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

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

#### Виключення

[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)

Архів у неправильному стані.

### <a id="Aspose_Zip_ArchiveEntry_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.ArchiveEntry.

ExtractionProgressed

Виникає, коли частина сирого потоку витягується.

public event EventHandler<progresseventargs> ExtractionProgressed

Тип події

EventHandler<ProgressEventArgs&gt;

Приклади

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

Примітки

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

 Українська