我想在没有安装 7zip 的情况下解压 .7z-Files

I want to decompress .7z-Files without having 7zip installed

我想解压缩从 Web 服务器下载的 .7z 文件。我已经搜索了一个解决方案,但我只找到了我必须安装 7zip 的地方。

有解压这个文件的简单方法吗?

我已经有一个 "foreach" 循环遍历包含文件名的列表中的项目。

我个人对 SevenZipSharp 库有很好的体验。 https://sevenzipsharp.codeplex.com/

提取/解压代码示例:

using (var tmp = new SevenZipExtractor(@"d:\Tempz465_extra.7z"))
{
       for (int i = 0; i < tmp.ArchiveFileData.Count; i++)
       {
             tmp.ExtractFiles(@"d:\Temp\Result\", tmp.ArchiveFileData[i].Index);
       }
}

只需将 7zip 中的所需 dll 和此库放入您的程序文件夹中,即可开始使用。因此,您不需要明确安装 7zip,您只需要库。

我刚刚尝试了新的 SharpCompress,如果您不关心文件类型(例如,它可以是 7z/zip/rar),我发现它很棒。

using (var archive = ArchiveFactory.Open(compressedFile))
{
    foreach (var entry in archive.Entries)
    {
        if (!entry.IsDirectory)
            entry.WriteToDirectory(@"C:\Temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });
    }
}

用.Net core 2.2解压.7z文件 从 nuget 下载 SharpCompress(0.23.0)。

static void SharpCompressEx(string sevenZPath)
    {
        using (Stream stream = File.OpenRead(sevenZPath))
        {
            using (var archive = ArchiveFactory.Open(stream))
            {
                foreach (var entry in archive.Entries)
                {
                    if (!entry.IsDirectory)
                        entry.WriteToDirectory(@"C:\Temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });
                }
            }
        }
    }