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.

 Русский