Class ArchiveEntry
Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)
Представляет собой один файл в архиве.
public abstract class ArchiveEntry : IArchiveFileEntry
Наследование
Производные
ArchiveEntryEncrypted, ArchiveEntryPlain
Реализует
Унаследованные члены
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>
Метод, возвращающий поток с данными элемента, которые необходимо сжать.
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; }
Значение свойства
CompressedSize
Получает размер сжатого файла.
public ulong CompressedSize { get; }
Значение свойства
CompressionSettings
Получает настройки для сжатия или распаковки.
public CompressionSettings CompressionSettings { get; }
Значение свойства
DataSource
Источник для элемента, если элемент был добавлен в архив, а не извлечен.
public Stream DataSource { get; }
Значение свойства
Примечания
Перед назначением источник равен null. Этот источник может быть назначен в методе Archive.Save
в некоторых случаях.
FileAttributes
Получает атрибуты файла из хост-системы.
protected FileAttributes FileAttributes { get; }
Значение свойства
IsDirectory
Получает значение, указывающее, представляет ли элемент каталог.
public bool IsDirectory { get; }
Значение свойства
ModificationTime
Получает или задает дату и время последнего изменения.
public DateTime ModificationTime { get; set; }
Значение свойства
Name
Получает имя элемента в архиве.
public string Name { get; protected set; }
Значение свойства
UncompressedSize
Получает размер оригинального файла.
public ulong UncompressedSize { get; }
Значение свойства
Методы
Extract(string, string)
Извлекает элемент в файловую систему по указанному пути.
public FileInfo Extract(string path, string password = null)
Параметры
path
string
Путь к целевому файлу. Если файл уже существует, он будет перезаписан.
password
string
Необязательный пароль для расшифровки.
Возвращает
Информация о созданном файле.
Примеры
Извлечение двух элементов из 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");
}
}
Исключения
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
Необязательный пароль для расшифровки.
Примеры
Извлечение элемента из zip-архива с паролем.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Исключения
Данные повреждены. -или- Проверка CRC или MAC не удалась для элемента.
Источник поврежден или недоступен для чтения.
destination
не поддерживает запись.
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>
#### Примечания
<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>
Примеры
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Примечания
Отправитель события - это экземпляр Aspose.Zip.ArchiveEntry.
ExtractionProgressed
Вызывается, когда часть необработанного потока извлечена.
public event EventHandler<progresseventargs> ExtractionProgressed
Тип события
EventHandler<ProgressEventArgs>
Примеры
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize); };
Примечания
Отправитель события - это экземпляр Aspose.Zip.ArchiveEntry.