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.

 Русский