使用 sevenzip 提取 .7Z 文件不适用于大于 1GB 的大文件

Extract .7Z file using sevenzip doesn't work for larger files >1GB

sevenzip 提取器工作正常,非常适合提取小的 .7Z 文件。用于提取大文件 (1gb) 时使用相同的代码,出现以下异常。

SevenZipExtractor extractor = new SevenZipExtractor(@"\Sourcepath\test_20191024143230.7z");
if (extractor.Check())
{
    using (var tmp = new SevenZipExtractor(@"\DestinationPath\test"))
    {
        for (int i = 0; i < tmp.ArchiveFileData.Count; i++)
        {
            tmp.ExtractFiles(@"C:\Users\ot97813\RPC_CodeBase\UnZip File\ExtractPath\", tmp.ArchiveFileData[i].Index);
        }
    }
}

查看了所有网站,我没有发现它不支持提取更大的文件。 注意:文件未加密或密码保护。

这不是答案,只是证明SevenZipExtractor有效。

using System;
using SevenZipExtractor; // https://github.com/adoconnection/SevenZipExtractor
using ByteSizeLib; // https://github.com/omar/ByteSize

namespace ConsoleAppSevenZipExtractor
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ArchiveFile archiveFile = new ArchiveFile(@"C:\test.7z"))
            {
                foreach (var entry in archiveFile.Entries)
                {
                    Console.WriteLine($"{entry.FileName} with {ByteSize.FromBytes(entry.Size)}");

                    // extract to file to current path
                    entry.Extract(entry.FileName);
                }
            }

            Console.ReadKey();
        }
    }
}

7Zip 存档使用了大约 2 Gb

控制台输出:

text.txt with 88.13 KB

video.mp4 with 1.96 GB

promo.jpg with 56.98 KB

在 bin/debug 上提取文件