首页 > 解决方案 > 使用 C# 更高效地创建 zip 文件

问题描述

精简版

在 C# 中是否有比使用更有效或资源更少的方法来递归地创建文件夹的 zip 文件System.IO.Compression.ZipFile.CreateFromDirectory

长版

我有一个在 Azure 应用服务中运行的 REST API(以 P2V2 420 总 ACU 和 7 GB 内存进行扩展)。我的一个端点接受一个 POST 请求并使用以下代码生成一个 zip 文件。然后它返回以标准 JSON 格式包装生成的 zip 文件的名称。

System.IO.Compression.ZipFile.CreateFromDirectory(sourcePath, outputPath);

这在我的本地机器上运行良好,但在云服务器上似乎存在扩展问题。当我扩展到下一级应用程序服务(P3V2 820 ACU,14GB 内存)时,它运行良好,但没有扩展 API 会返回 503 Service Unavailable 消息。我不确定哪个资源受到限制(cpu、内存、磁盘等),但我认为这不是服务器超时问题,因为它只运行大约 10-20 秒。生成的 zip 文件大约有 400 个文件或 200MB 压缩。

我的问题是,由于扩大规模每月额外花费 120 美元,有没有办法更有效地生成 zip 文件,所以我不需要扩大服务器规模?使用多个命令而不是使用 将 zip 文件的创建拆分为创建和添加文件步骤是否有帮助CreateFromDirectory(...)

其他信息:

标签: c#performanceiocompressionazure-appservice

解决方案


推荐阅读