除ZIP格式外,还有其他一些常用的存档格式,例如7z,tar,RAR等。其中,7z存档格式基于开放源代码体系结构,用于以高压缩率压缩文件和文件夹。它还支持256位AES加密,并且还可以加密文件名。
Aspose.ZIP for .NET是用于标准ZIP格式的灵活文档压缩和存档操作API。API使.NET应用程序能够实现文件压缩/解压缩,文件存档以及文件夹和存档加密。
Aspose.Zip for .NET已升级至V20.3,如果你还没有用过Aspose.Zip可以点击这里下载最新版测试。
- 使用C#创建7z(7-Zip)存档
- 使用C#创建AES加密的7z存档
- 使用C#为7z条目设置不同的密码
使用C#创建7z(7-Zip)存档
将文件压缩到7z存档中可能有两种情况。您可能只有一个文件,或者可能有一堆文件要压缩。这里可以显式处理两种情况。
一次创建7z存档
以下是创建具有单个条目的7z归档文件的步骤。
- 打开一个新的FileStream创建一个7z文件。
- 创建一个SevenZipArchive类的实例。
- 使用SevenZipArchive.CreateEntry(String,String,Boolean,SevenZipEntrySettings)方法将文件添加到存档中。
- 使用SevenZipArchive.Save(Stream)方法创建和保存存档。
下面的代码示例演示如何使用C#创建7z(7压缩)归档文件。
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create)){ using (var archive = new SevenZipArchive()) { archive.CreateEntry("data.bin", "file.dat"); archive.Save(sevenZipFile); }}
创建具有多个条目的7z存档
在这种情况下,可以将文件放在文件夹中,并将文件夹的路径传递给SevenZipArchive.CreateEntries()方法。以下是将多个文件条目添加到7z存档的步骤。
- 创建一个SevenZipArchive类的实例。
- 将文件夹的路径传递给SevenZipArchive.CreateEntries(String,Boolean)方法。
- 调用SevenZipArchive.Save(String)方法。
using (SevenZipArchive archive = new SevenZipArchive()){ archive.CreateEntries(dataDir); archive.Save("SevenZip.7z");}
使用C#创建AES加密的7z存档
7z格式支持AES加密以保护文件。为了加密7z文件,使用SevenZipAESEncryptionSettings类。以下代码示例显示了如何使用C#创建AES加密的7z存档。
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$")))){ archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF })); archive.Save("archive.7z");}
使用C#为7z条目设置不同的密码
7z格式还允许为每个文件条目指定不同的密码。例如,如果要压缩7z存档中的两个文件,则可以为每个文件指定不同的密码。以下是为7z条目设置不同密码的步骤。
- 为7z存档文件创建一个新的FileStream。
- 使用FileInfo类访问每个文件条目。
- 创建一个SevenZipArchive类的实例。
- 使用SevenZipArchive.CreateEntry(String,FileInfo,Boolean,SevenZipEntrySettings)在7z存档中创建条目
- 使用SevenZipArchive.Save(Stream)方法保存存档。
以下代码示例显示了如何为7z归档中的每个条目设置密码。
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create)){ FileInfo fi1 = new FileInfo("data1.bin"); FileInfo fi2 = new FileInfo("data2.bin"); FileInfo fi3 = new FileInfo("data3.bin"); using (var archive = new SevenZipArchive()) { archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1"))); archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2"))); archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3"))); archive.Save(sevenZipFile); }}
还想要更多吗可以点击阅读【2019 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!