Class SevenZipArchiveEntry

Class SevenZipArchiveEntry

Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.2.0)

Represents single file within 7z archive.

public abstract class SevenZipArchiveEntry : IArchiveFileEntry

Inheritance

objectSevenZipArchiveEntry

Derived

SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain

Implements

IArchiveFileEntry

Inherited Members

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

Remarks

Cast an Aspose.Zip.SevenZip.SevenZipArchiveEntry instance to Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted to determine whether the entry encrypted or not.

Properties

CompressedSize

Gets size of compressed file.

public ulong CompressedSize { get; }

Property Value

ulong

CompressionSettings

Gets settings for compression or decompression.

public SevenZipCompressionSettings CompressionSettings { get; }

Property Value

SevenZipCompressionSettings

FileAttributes

Gets file attributes from host system.

protected FileAttributes FileAttributes { get; }

Property Value

FileAttributes

IsDirectory

Gets a value indicating whether the entry represents directory.

public bool IsDirectory { get; }

Property Value

bool

ModificationTime

Gets last modified date and time.

public DateTime ModificationTime { get; }

Property Value

DateTime

Name

Gets name of the entry within archive.

public string Name { get; protected set; }

Property Value

string

Source

Gets the data source stream for the entry.

protected Stream Source { get; set; }

Property Value

Stream

UncompressedSize

Gets size of original file.

public ulong UncompressedSize { get; }

Property Value

ulong

Methods

Extract(string, string)

Extracts the entry to the filesystem by the path provided.

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

Parameters

path string

The path to destination file. If the file already exists, it will be overwritten.

password string

Optional password for decryption.

Returns

FileInfo

The file info of composed file.

Examples

using (var archive = new SevenZipArchive("archive.7z"))
{
    archive.Entries[0].Extract("data.bin");
}

Exceptions

ArgumentNullException

path is null.

SecurityException

The caller does not have the required permission to access.

ArgumentException

The path is empty, contains only white spaces, or contains invalid characters.

UnauthorizedAccessException

Access to file path is denied.

PathTooLongException

The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.

NotSupportedException

File at path contains a colon (:) in the middle of the string.

InvalidDataException

Archive is corrupted.

Extract(Stream, string)

Extracts the entry to the stream provided.

public void Extract(Stream destination, string password = null)

Parameters

destination Stream

Destination stream. Must be writable.

password string

Optional password for decryption.

Examples

Extract an entry of zip archive with password.

using (var archive = new SevenZipArchive("archive.7z"))
{
    archive.Entries[0].Extract(httpResponseStream);
}

Exceptions

ArgumentException

destination does not support writing.

InvalidOperationException

The archive is not opened for extraction. - or - This entry is a directory.

InvalidDataException

Wrong data within the entry.

FinalizeCompressedData(Stream, byte[])

Write to output stream any headers that follow compressed data.

protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)

Parameters

outputStream Stream

Output stream for the entry.

encoderProperties byte[]

Properties of compressor.

Returns

int

Number of “technical” bytes that were added after entry significant data block.

GetDestinationStream(Stream)

Destination stream for the entry, may be decorated.

protected abstract Stream GetDestinationStream(Stream outputStream)

Parameters

outputStream Stream

Output stream for the entry.

Returns

Stream

The destination stream for entry compression.

Open(string)

Opens the entry for extraction and provides a stream with entry content.

public Stream Open(string password = null)

Parameters

password string

Optional password for decryption.

Returns

Stream

The stream that represents the contents of the entry.

Examples

Usage: Stream decompressed = entry.Open();

.NET 4.0 and higher - use Stream.CopyTo method: decompressed.CopyTo(httpResponse.OutputStream)

.NET 3.5 and before - copy bytes manually:

byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
 fileStream.Write(buffer, 0, bytesRead);
```</p>

#### Remarks

Read from the stream to get original content of file. See examples section.

#### Exceptions

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

The archive is not opened for extraction. - or - This entry is a directory.

 [InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)

Wrong data within the entry.

### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed

Raises when a portion of raw stream compressed.

```csharp
public event EventHandler<progresseventargs> CompressionProgressed

Event Type

EventHandler<ProgressEventArgs&gt;

Examples

archive.Entries[0].CompressionProgressed += (s, e) =&gt; { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };

Remarks

Event sender is an Aspose.Zip.SevenZip.SevenZipArchiveEntry instance.

Does not invoke in multithreaded mode for LZMA2 entries.

 English