Search code examples
c#winrar

Extracting files from RAR archive


I am trying to extract files from Rar But i Get message

"Cannot use Archive random access on SOLID Rar files"

string[] filePaths = Directory.GetFiles(@"C:\Users\Luka\Desktop\RarFiles\", "*.rar",
                                    SearchOption.TopDirectoryOnly);


foreach (var item in filePaths)
{
    var archive = ArchiveFactory.Open(item);//@"C:\test.rar"Monitoring

    foreach (var entry in archive.Entries.Where(x=> x.Key.Contains("Monitoring")))
    {
        if (!entry.IsDirectory)
        {
            entry.WriteToDirectory(@"D:\WinrarrFiles");
        }
    }
}

Solution

  • Following this tutorial, this is the right way to read the rar.

    using (Stream stream = File.OpenRead(@"C:\Code\sharpcompress.rar"))
    {
        var reader = ReaderFactory.Open(stream);
        while (reader.MoveToNextEntry())
        {
            if (!reader.Entry.IsDirectory)
            {
                reader.WriteEntryToDirectory(@"C:\temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });
            }
        }
    }