Read content of RAR files using C#

2019-01-13 17:19发布

问题:

Is there any way to read the content of a RAR file (support for multi-file RAR is a must)?

I don't want to extract the content to the disk, just read it like a stream.

回答1:

Low level lib to work with 7z.dll (supports rar archives, incliding multi-part, works with .net streams):

C# (.net) interface for 7-Zip archive dlls

And more high-level lib based on the first one:

SevenZipSharp



回答2:

Install NUnrar from nuget

RarArchive file = RarArchive.Open("rar file path");//@"C:\test.rar"
                    foreach (RarArchiveEntry rarFile in file.Entries)
                    {
                        string path = "extracted file path";//@"C:\"
                        rarFile.WriteToDirectory(path);

                    }


回答3:

Chilkat Rar library

More specific: link



回答4:

My unrar project, http://nunrar.codeplex.com/ aims to be very .NETty and has streaming support. If you need something else, please suggest or give me a patch.



回答5:

Another possibility is using including the rar command-line executable as application ressource and call it via System.Diagnostics.Process.

You may want to redirect the input/output stream.



回答6:

If you want to directly access files stored in uncompressed rar files, then this answer might be of use.

ReScene is a project for recreating rar archives from the extracted files. You need a .srr file for this. The source code is available. You may want to take a look at RarStream.cs.



标签: c# stream rar