C# wrapper for 7z.dll (x86 and x64 included). Due to a compatibility issue with "Source Generated" COM Interop, this fork only works with .NET 8.
This fork has been modified to work with NativeAOT and ILTrimming on .NET 8. This fork also adds other features such as:
- Cancellable extraction
- Progress event
- Latest 7z.dll library (Currently: v23.01)
However, all the credits for the initial works have been done by the original creator: Alexander Selishchev
This fork is unfortunately still unavailable on NuGet but if you prefer one, please refer to the original version here:
Every single star makes maintainer happy! ⭐
Install-Package SevenZipExtractor
- 7Zip
- APM
- Arj
- BZip2
- Cab
- Chm
- Compound
- Cpio
- CramFS
- Deb
- Dll
- Dmg
- Exe
- Fat
- Flv
- GZip
- Hfs
- Iso
- Lzh
- Lzma
- Lzma86
- Mach-O
- Mbr
- Mub
- Nsis
- Ntfs
- Ppmd
- Rar
- Rar5
- Rpm
- Split
- SquashFS
- Swf
- Swfc
- Tar
- TE
- Udf
- UEFIc
- UEFIs
- Vhd (?)
- Wim
- Xar
- XZ
- Z
- Zip
CancellationTokenSource tokenSource = new CancellationTokenSource();
using (ArchiveFile archiveFile = new ArchiveFile(@"Archive.ARJ"))
{
archiveFile.Extract("Output", tokenSource.Token); // extract all with cancellable control using token
}
using (ArchiveFile archiveFile = new ArchiveFile(@"Archive.ARJ"))
{
foreach (Entry entry in archiveFile.Entries)
{
Console.WriteLine(entry.FileName);
// extract to file
entry.Extract(entry.FileName);
// extract to stream
MemoryStream memoryStream = new MemoryStream();
entry.Extract(memoryStream);
}
}
using (ArchiveFile archiveFile = new ArchiveFile(@"c:\random-archive"))
{
archiveFile.Extract("Output");
}
WebRequest request = WebRequest.Create ("http://www.contoso.com/file.aspx?id=12345");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (ArchiveFile archiveFile = new ArchiveFile(response.GetResponseStream())
{
archiveFile.Extract("Output");
}
7z.dll (x86 and x64) will be added to your BIN folder automatically.
- Based on code from: http://www.codeproject.com/Articles/27148/C-NET-Interface-for-Zip-Archive-DLLs
- Source code in this repo is licensed under The MIT License
- 7z binaries license http://www.7-zip.org/license.txt
1.0.17 / 2022.04.08
- #54 4Gb+ archives fixed! 🎉 (Thanks Pyroluk)
1.0.16 / 2021.01.17
- 7z binaries updated to 21.07.0.0
- PR#56 - signature for
SquashFS
(Thanks mmoosstt) - PR#53 - look for binaries in
bin
folder (Thanks CupSunshine)
1.0.15 / 2020.01.14
- .NETStandard 2.0 support PR#38
1.0.14
- Entry.Extrat - preserveTimestamp is true by default #34
- Dynamic operations can only be performed in homogenous AppDomain" #36