彩票走势图

快速创建7z(7-Zip)存档!教你用Aspose.Zip以编程方式解决!

翻译|使用教程|编辑:李显亮|2020-05-07 09:28:45.383|阅读 365 次

概述:在本文中,将演示如何使用C#以编程方式创建7z(7-Zip)存档。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

除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#创建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);
    }
}

在本文中,我们学习了如何使用C#以编程方式创建7z档案。您还可以从阅读【使用C#创建ZIP归档文件的不同方法】


还想要更多吗?您可以点击阅读
【2019 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP