Class ZstandardArchive

Class ZstandardArchive

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

This class represents Zstandard archive file. Use it to compose Zstandard archives.

public class ZstandardArchive : IArchive, IDisposable, IArchiveFileEntry

Inheritance

objectZstandardArchive

Implements

IArchive, IDisposable, IArchiveFileEntry

Inherited Members

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

Constructors

ZstandardArchive()

Initializes a new instance of the Aspose.Zip.Zstandard.ZstandardArchive class prepared for compressing.

public ZstandardArchive()

Examples

The following example shows how to compress a file.

using (ZstandardArchive archive = new ZstandardArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.zst");
}

ZstandardArchive(Stream, ZstandardLoadOptions)

Initializes a new instance of the Aspose.Zip.Zstandard.ZstandardArchive class prepared for decompressing.

public ZstandardArchive(Stream sourceStream, ZstandardLoadOptions options = null)

Parameters

sourceStream Stream

The source of the archive.

options ZstandardLoadOptions

The options to load archive with.

Examples

Open an archive from a stream and extract it to a MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new ZstandardArchive(File.OpenRead("archive.zst")))
  archive.Open().CopyTo(ms);

Remarks

This constructor does not decompress. See Aspose.Zip.Zstandard.ZstandardArchive.Open method for decompressing.

ZstandardArchive(string, ZstandardLoadOptions)

Initializes a new instance of the Aspose.Zip.Zstandard.ZstandardArchive class.

public ZstandardArchive(string path, ZstandardLoadOptions options = null)

Parameters

path string

The path to the archive file.

options ZstandardLoadOptions

The options to load archive with.

Examples

Open an archive from file by path and extract it to a MemoryStream

var ms = new MemoryStream();
using (ZstandardArchive archive = new ZstandardArchive("archive.zst"))
  archive.Open().CopyTo(ms);

Remarks

This constructor does not decompress. See Aspose.Zip.Zstandard.ZstandardArchive.Open method for decompressing.

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.

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

Dispose(bool)

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Whether managed resources should be disposed.

Extract(Stream)

Extracts the archive to the stream provided.

public void Extract(Stream destination)

Parameters

destination Stream

Destination stream. Must be writable.

Examples

using (var archive = new GzipArchive("archive.zst"))
{
     archive.Extract(httpResponseStream);
}

Exceptions

ArgumentException

destination does not support writing.

Extract(string)

Extracts the archive to the file by path.

public FileInfo Extract(string path)

Parameters

path string

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

Returns

FileInfo

Info of extracted file.

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.

ExtractToDirectory(string)

Extracts content of the archive to the directory provided.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

The path to the directory to place the extracted files in.

Remarks

If the directory does not exist, it will be created.

Exceptions

ArgumentNullException

destinationDirectory is null.

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.

SecurityException

The caller does not have the required permission to access existing directory.

NotSupportedException

If directory does not exist, path contains a colon character (:) that is not part of a drive label (“C:").

ArgumentException

destinationDirectory is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method. -or- path is prefixed with, or contains, only a colon character (:).

IOException

The directory specified by path is a file. -or- The network name is not known.

Open()

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

public Stream Open()

Returns

Stream

The stream that represents the contents of the archive.

Examples

Extracts the archive and copies extracted content to file stream.

using (var archive = new ZstandardArchive("archive.zst"))
{
    using (var extracted = File.Create("data.bin"))
    {
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }            
}

You may use Stream.CopyTo method for .NET 4.0 and higher: `unpacked.CopyTo(extracted);`

Remarks

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

Save(Stream, ZstandardSaveOptions)

Saves archive to the stream provided.

public void Save(Stream outputStream, ZstandardSaveOptions settings = null)

Parameters

outputStream Stream

Destination stream.

settings ZstandardSaveOptions

Optional settings for archive composition.

Examples

Writes compressed data to http response stream.

using (var archive = new ZstandardArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

Remarks

outputStream must be writable.

Exceptions

ArgumentException

outputStream is not writable.

InvalidOperationException

Source has not been supplied.

Save(string, ZstandardSaveOptions)

Saves archive to destination file provided.

public void Save(string destinationFileName, ZstandardSaveOptions settings = null)

Parameters

destinationFileName string

The path of the archive to be created. If the specified file name points to an existing file, it will be overwritten.

settings ZstandardSaveOptions

Optional settings for archive composition.

Examples

using (var archive = new ZstandardArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("result.zst");
}

Exceptions

ArgumentNullException

destinationFileName is null.

SecurityException

The caller does not have the required permission to access.

ArgumentException

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

UnauthorizedAccessException

Access to file destinationFileName is denied.

PathTooLongException

The specified destinationFileName, 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 destinationFileName contains a colon (:) in the middle of the string.

Save(FileInfo, ZstandardSaveOptions)

Saves archive to destination file provided.

public void Save(FileInfo destination, ZstandardSaveOptions settings = null)

Parameters

destination FileInfo

FileInfo which will be opened as destination stream.

settings ZstandardSaveOptions

Optional settings for archive composition.

Examples

using (var archive = new ZstandardArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(new FileInfo("archive.zst"));
}

Exceptions

SecurityException

The caller does not have the required permission to open the destination.

ArgumentException

File path is empty or contains only white spaces.

FileNotFoundException

The file is not found.

UnauthorizedAccessException

Path to file is read-only or is a directory.

ArgumentNullException

destination is null.

DirectoryNotFoundException

The specified path is invalid, such as being on an unmapped drive.

IOException

The file is already open.

SetSource(Stream)

Sets the content to be compressed within the archive.

public void SetSource(Stream source)

Parameters

source Stream

The input stream for the archive.

Examples

using (var archive = new ZstandardArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.zst");
}

SetSource(FileInfo)

Sets the content to be compressed within the archive.

public void SetSource(FileInfo fileInfo)

Parameters

fileInfo FileInfo

The reference to a file to be compressed.

Examples

using (var archive = new ZstandardArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.zst");
}

SetSource(string)

Sets the content to be compressed within the archive.

public void SetSource(string path)

Parameters

path string

Path to file to be compressed.

Examples

using (var archive = new ZstandardArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.zst");
}

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.

 English