Extract

RarArchiveEntry.Extract method (1 of 2)

Extracts the entry to the filesystem by the path provided.

public FileInfo Extract(string path, string password = null)
Parameter Type Description
path String The path to destination file. If the file already exists, it will be overwritten.
password String Optional password for decryption.

Return Value

The file info of composed file.

Exceptions

exception condition
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 CRC or MAC verification failed for the entry.

Examples

Extract two entries of rar archive.

using (FileStream rarFile = File.Open("archive.rar", FileMode.Open))
{
    using (RarArchive archive = new RarArchive(rarFile))
    {
        archive.Entries[0].Extract("first.bin", "pass");
        archive.Entries[1].Extract("second.bin", "pass");
    }
}

See Also


RarArchiveEntry.Extract method (2 of 2)

Extracts the entry to the stream provided.

public void Extract(Stream destination, string password = null)
Parameter Type Description
destination Stream Destination stream. Must be writable.
password String Optional password for decryption.

Exceptions

exception condition
InvalidDataException CRC or MAC verification failed for the entry.
ArgumentException destination does not support writing.

Examples

Extract an entry of rar archive with password.

using (FileStream rarFile = File.Open("archive.zip", FileMode.Open))
{
    using (RarArchive archive = new RarArchive(rarFile))
    {
        archive.Entries[0].Extract(httpResponseStream, "p@s$");
    }
}

See Also