想要用编程方式将文件添加到ZIP存档?Aspose.ZIP帮你快速解决

ZIP档案是用来压缩和保持一个或多个文件或文件夹到一个单一的容器中。ZIP归档文件封装了文件和文件夹,并保存了它们的元数据信息。归档的最常见用法是减小用于存储或传输的文件的大小,并应用加密以提高安全性。

除文件压缩工具外,各种桌面和Web应用程序还使用自动压缩/提取功能来上载,下载,共享或加密文件。

Aspose.ZIP for .NET是用于标准ZIP格式的灵活文档压缩和存档操作API。API使.NET应用程序能够实现文件压缩/解压缩,文件存档以及文件夹和存档加密。

Aspose.Zip for .NET已升级至V20.3,如果你还没有用过Aspose.Zip可以点击这里下载最新版测试。

  • 使用C#创建一个ZIP存档。
  • 将多个文件添加到ZIP存档中。
  • 将文件夹添加到ZIP存档中。
  • 创建一个受密码保护的ZIP存档。
  • 使用AES加密对ZIP存档进行加密。

想要用编程方式将文件添加到ZIP存档spose.ZIP帮你快速解决

在C#中创建一个ZIP存档

以下是通过将文件添加到ZIP归档文件来压缩文件的步骤:

  • 为输出ZIP存档创建FileStream对象。
  • 将源文件打开到FileStream对象中。
  • 创建一个Archive类的对象。
  • 使用Archive.CreateEntry(string,FileStream)方法将文件添加到存档中。
  • 使用Archive.Save(FileStream)方法创建ZIP存档。

下面的代码示例演示如何使用C#将文件添加到ZIP存档中。

// Create FileStream for output ZIP archiveusing (FileStream zipFile = File.Open("compressed_file.zip", FileMode.Create)){// File to be added to archiveusing (FileStream source1 = File.Open("alice29.txt", FileMode.Open, FileAccess.Read)){using (var archive = new Archive(new ArchiveEntrySettings())){// Add file to the archivearchive.CreateEntry("alice29.txt", source1);// ZIP filearchive.Save(zipFile);}}}

在C#中将多个文件添加到ZIP存档

如果要将多个文件添加到ZIP存档中,可以使用以下方式之一进行。

使用FileStream压缩多个文件

在此方法中,FileStream类用于使用Archive.CreateEntry(String,FileStream)方法将文件添加到ZIP存档中。下面的代码示例演示如何在C#中将多个文件添加到ZIP中。

// Create FileStream for output ZIP archiveusing (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Create)){// File to be added to archiveusing (FileStream source1 = File.Open("alice29.txt", FileMode.Open, FileAccess.Read)){// File to be added to archiveusing (FileStream source2 = File.Open("asyoulike.txt", FileMode.Open, FileAccess.Read)){using (var archive = new Archive()){// Add files to the archivearchive.CreateEntry("alice29.txt", source1);archive.CreateEntry("asyoulik3.txt", source2);// ZIP the filesarchive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII, ArchiveComment = "two files are compressed in this archive" });}}}}
使用FileInfo压缩多个文件

也可以使用FileInfo类将多个文件添加到ZIP存档中。在此方法中,将使用FileInfo类加载文件,并使用Archive.CreateEntry(String,FileInfo)方法将其添加到ZIP存档中。下面的代码示例演示如何使用C#中的FileInfo类对多个文件进行ZIP 。

// Create FileStream for output ZIP archiveusing (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Create)){// Files to be added to archiveFileInfo fi1 = new FileInfo("alice29.txt");FileInfo fi2 = new FileInfo("fields.c");using (var archive = new Archive()){// Add files to the archivearchive.CreateEntry("alice29.txt", fi1);archive.CreateEntry("fields.c", fi2);// Create ZIP archivearchive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII });}}

将文件夹添加到C#中的ZIP存档中

可以对文件夹进行ZIP压缩,这可能是将多个文件添加到ZIP存档的另一种选择。只需将源文件放入一个文件夹中,然后将该文件夹添加到ZIP存档中。以下是压缩文件夹的步骤:

  • 为输出ZIP存档创建FileStream类的对象。
  • 创建Archive类的实例。
  • 使用DirectoryInfo类指定要压缩的文件夹。
  • 使用Archive.CreateEntries(DirectoryInfo)方法将文件夹添加到ZIP中。
  • 使用Archive.Save(FileStream)方法创建ZIP存档。

下面的代码示例演示如何在C#中将文件夹添加到ZIP。

// Create FileStream for output ZIP archiveusing (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create)){using (Archive archive = new Archive()){// Folder to be ZippedDirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");archive.CreateEntries(corpus);// Create ZIP archivearchive.Save(zipFile);}}

在C#中创建受密码保护的ZIP存档

可以使用密码保护ZIP存档。为了指定ZIP存档的密码,在Archive的构造函数中使用ArchiveEntrySettings类。以下代码示例显示了如何在C#中创建受密码保护的ZIP归档文件。

// Create FileStream for output ZIP archiveusing (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create)){using (Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$")))){// Add folder to the archiveDirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");archive.CreateEntries(corpus);// Create ZIP archivearchive.Save(zipFile);}}

在C#中创建AES加密的ZIP存档

.NET的Aspose.ZIP还允许您将AES加密应用于ZIP存档。您可以使用以下AES加密方法:

  • AES128
  • AES192
  • AES256

为了应用AES加密,API提供了AesEcryptionSettings类。以下代码示例显示了如何在C#中创建AES加密的ZIP存档。

// Create FileStream for output ZIP archiveusing (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create)){using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)))){// Add folder to archiveDirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");archive.CreateEntries(corpus);// Create ZIP archivearchive.Save(zipFile);}}

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

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月19日
下一篇 2020年3月19日

相关推荐

发表回复

登录后才能评论