我需要使用.Net创建跨区(多卷)zip文件,但我无法找到能够让我这样做的库。
跨区zip是一个zip压缩文件,分为多个文件,通常有.z00,.z01等扩展名。
图书馆必须是开源的或免费的,因为我将把它用于开源项目。
(它与this问题重复,但那里没有答案,我也不打算使用ASP特定的方法)
答案 0 :(得分:23)
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。
编辑注: DotNetZip曾经住在Codeplex。 Codeplex已关闭。旧档案仍然[可在Codeplex] [1]获得。看起来代码已迁移到Github:
答案 1 :(得分:15)
DotNetZip允许您这样做。从他们的文件:
该库支持zip密码,Unicode,ZIP64,流输入和输出, AES加密,多个压缩级别,自解压档案, 跨越档案,等等。
答案 2 :(得分:1)
查看SevenZipSharp库。它支持多卷存档。