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

时间:2015-12-31 14:58:23

标签: c# zip 7zip compression

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

是否有一种解压缩此文件的简单方法?

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

3 个答案:

答案 0 :(得分:3)

我刚刚尝试了新的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 });
    }
}

答案 1 :(得分:2)

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

提取/解压缩的代码示例:

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

只需将7zip所需的dll和此库放在您的programm文件夹中,您就可以了。因此,您不需要显式安装7zip,只需要libs。

答案 2 :(得分:0)

使用.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 });
                }
            }
        }
    }