使用 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 上提取文件
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 上提取文件