彩票走势图

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

翻译|使用教程|编辑:李显亮|2020-04-23 11:11:49.233|阅读 272 次

概述:在本文中还针对类似的情况,并提供了一些简单的方法来压缩文件或文件夹,并使用C#以编程方式创建ZIP存档。

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

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

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

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

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

在本文中还针对类似的情况,并提供了一些简单的方法来压缩文件或文件夹,并使用C#以编程方式创建ZIP存档。本文将演示:

  • 使用C#创建一个ZIP存档。
  • 将多个文件添加到ZIP存档中。
  • 将文件夹添加到ZIP存档中。
  • 创建一个受密码保护的ZIP存档。
  • 使用AES加密对ZIP存档进行加密。
想要用编程方式将文件添加到ZIP存档?Aspose.ZIP帮你快速解决

在C#中创建一个ZIP存档

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

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

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

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

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

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

使用FileStream压缩多个文件

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

// Create FileStream for output ZIP archive
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Create))
{
	// File to be added to archive
	using (FileStream source1 = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
	{
		// File to be added to archive
		using (FileStream source2 = File.Open("asyoulike.txt", FileMode.Open, FileAccess.Read))
		{
			using (var archive = new Archive())
			{
				// Add files to the archive
				archive.CreateEntry("alice29.txt", source1);
				archive.CreateEntry("asyoulik3.txt", source2);
				// ZIP the files
				archive.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 archive
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Create))
{
	// Files to be added to archive
	FileInfo fi1 = new FileInfo("alice29.txt");
	FileInfo fi2 = new FileInfo("fields.c");

	using (var archive = new Archive())
	{
		// Add files to the archive
		archive.CreateEntry("alice29.txt", fi1);
		archive.CreateEntry("fields.c", fi2);
		// Create ZIP archive
		archive.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 archive
using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create))
{
	using (Archive archive = new Archive())
	{
		// Folder to be Zipped
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

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

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

// Create FileStream for output ZIP archive
using (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 archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.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 archive
using (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 archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

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

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


为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP