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.