Class ZstandardArchive
Namespace: Aspose.Zip.Zstandard
Assembly: Aspose.Zip.dll (25.8.0)
This class represents a Zstandard archive file. Use it to compose Zstandard archives.
public class ZstandardArchive : IArchive, IDisposable, IArchiveFileEntryInheritance
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
path is null.
The caller does not have the required permission to access.
The path is empty, contains only white spaces, or contains invalid characters.
Access to file path is denied.
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.
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
Archive has been disposed and cannot be used.
destination does not support writing.
In .NET Framework 4.0 and above: Thrown when the extraction is canceled via the provided cancellation token.
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
Info of an extracted file.
Exceptions
Archive has been disposed and cannot be used.
path is null.
The caller does not have the required permission to access.
The path is empty, contains only white spaces, or contains invalid characters.
Access to file path is denied.
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.
File at path contains a colon (:) in the middle of the string.
In .NET Framework 4.0 and above: Thrown when the extraction is canceled via the provided cancellation token.
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
Archive has been disposed and cannot be used.
destinationDirectory is null.
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.
The caller does not have the required permission to access the existing directory.
If the directory does not exist, the path contains a colon character (:) that is not part of a drive label (“C:").
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 (:).
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
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 the original content of a file. See examples section.
Exceptions
Archive has been disposed and cannot be used.
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
Write 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
Archive has been disposed and cannot be used.
outputStream is not writable.
Source has not been supplied.
Save(string, ZstandardSaveOptions)
Saves archive to the 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
Archive has been disposed and cannot be used.
destinationFileName is null.
The caller does not have the required permission to access.
The destinationFileName is empty, contains only white spaces, or contains invalid characters.
Access to file destinationFileName is denied.
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.
File at destinationFileName contains a colon (:) in the middle of the string.
Save(FileInfo, ZstandardSaveOptions)
Saves archive to the 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
Archive has been disposed and cannot be used.
The caller does not have the required permission to open the destination.
The file path is empty or contains only white spaces.
The file is not found.
Path to file is read-only or is a directory.
destination is null.
The specified path is invalid, such as being on an unmapped drive.
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");
}Exceptions
Archive has been disposed and cannot be used.
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");
}Exceptions
Archive has been disposed and cannot be used.
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
Archive has been disposed and cannot be used.
path is null.
The caller does not have the required permission to access.
The path is empty, contains only white spaces, or contains invalid characters.
Access to file path is denied.
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.
File at path contains a colon (:) in the middle of the string.