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

问题描述 投票:0回答:1

sevenzip提取器工作正常,很好地提取了较小的.7Z文件。用于提取大文件(1gb)的相同代码,得到以下异常。

enter image description here

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);
                    }
                }
            }

在所有网站中都看到过,但我发现这不支持提取较大的文件。注意:文件未加密或没有密码保护。

c# .net 7zip
1个回答
0
投票

这不是答案,只是有效的证明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

控制台输出:

带有88.13 KB的text.txt

带有1.96 GB的video.mp4

带有56.98 KB的promo.jpg

在bin /调试文件上被提取

© www.soinside.com 2019 - 2024. All rights reserved.