.Net库用于分割卷zip文件?
我需要使用.Net创建跨区(多卷)zip文件,但我无法找到一个能够让我这样做的库。
跨区zip是一个zip压缩文件,分为多个文件,这些文件通常具有.z00,.z01等扩展名。
该库必须是开源的或免费的,因为我将把它用于开源项目。
(这是这个问题的重复,但那里没有答案,我也不打算使用ASP特定的)
DotNetZip允许您这样做。 从他们的文件:
该库支持zip密码,Unicode,ZIP64,流输入和输出,AES加密,多个压缩级别,自解压存档,跨文档等。
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。
- MyFiles.zip
- MyFiles.z01
- MyFiles.z02
- MyFiles.z03
- MyFiles.z04
编辑注: DotNetZip曾经住在Codeplex。 Codeplex已被关闭。 旧档案仍然[可在Codeplex] [1]获得。 看起来代码已迁移到Github:
- https://github.com/DinoChiesa/DotNetZip 。 看起来是原作者的回购。
- https://github.com/haf/DotNetZip.Semverd 。 这看起来是当前维护的版本。 它也可以通过Nuget打包到https://www.nuget.org/packages/DotNetZip/
看看SevenZipSharp库。 它支持多卷存档。