我需要使用.Net创建spanned(多卷)zip文件,但我一直无法找到一个库,使我能够做到这一点。。分割卷压缩文件的.Net库?
Spanned zip是一个压缩文件,压缩文件被分割成多个文件,这些文件通常具有诸如.z00,.z01等扩展名。
图书馆必须是开放源代码或免费的,因为我将把它用于开源项目。
(这是一个复制到this的问题,但目前还没有答案那里,我不会为ASP具体反正)
我需要使用.Net创建spanned(多卷)zip文件,但我一直无法找到一个库,使我能够做到这一点。。分割卷压缩文件的.Net库?
Spanned zip是一个压缩文件,压缩文件被分割成多个文件,这些文件通常具有诸如.z00,.z01等扩展名。
图书馆必须是开放源代码或免费的,因为我将把它用于开源项目。
(这是一个复制到this的问题,但目前还没有答案那里,我不会为ASP具体反正)
DotNetZip允许你这样做。从他们的文档:
库支持ZIP密码,统一,ZIP64,流输入和输出, AES加密,多重压缩级别,自解压文件, 跨区档案,等等。
+! DotNetZip很棒。 –
dotNetZip的最大跨度文件数= 99.如果你想制作一个15MB的文件(发送到电子邮件),压缩的东西大于〜1.5GB,你是不走运的。 – docesam
确实,DotNetZip对于拆分归档文件的最大文件(段)数为99,尽管这似乎完全是任意的。指定限制的最早版本(维基百科)是6.3.0(2006),与6.3.4(2014)在40亿文件限制(http://goo.gl/vh4Sp5 - 第8.5节)中匹配。 1)。但是,由于该库是开源的,您至少可以创建一个自定义修改。最小文件大小为64K(按照ZIP规范),您可以在一个ZIP文件夹中拥有大约256 TB的文件大小,而不会超过文件限制。 –
看看在SevenZipSharp库。它支持多卷存档。
DotNetZip例如:
int segmentsCreated ;
using (ZipFile zip = new ZipFile())
{
zip.UseUnicode= true; // utf-8
zip.AddDirectory(@"MyDocuments\ProjectX");
zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G") ;
zip.MaxOutputSegmentSize = 100*1024 ; // 100k segments
zip.Save("MyFiles.zip");
segmentsCreated = zip.NumberOfSegmentsForMostRecentSave ;
}
如果segmentsCreated
回来为5,那么你有以下的文件,每个文件不超过大小100KB的。
多年以后,但我只想澄清这个问题是关于拆分档案。跨区的zip档案完全是其他东西 - 单个ZIP档案跨越多个逻辑卷(通常围绕软盘设计)。不同之处在于,分割ZIP归档使用“.z00 - .z(n - 1)”命名,而在跨区归档中,所有文件共享相同名称(具有相同的“.zip”扩展名)。 –