从 NSIS 发送到压缩(压缩)文件夹

Posted

技术标签:

【中文标题】从 NSIS 发送到压缩(压缩)文件夹【英文标题】:Send To Compressed (zipped) Folder from NSIS 【发布时间】:2011-06-05 10:06:31 【问题描述】:

有没有办法从 NSIS 脚本以编程方式将(单个文件)发送到压缩(压缩)文件夹?

在我的搜索中,我找到了使用以下方法打开此类文件夹的参考:

rundll32.exe zipfldr.dll,RouteTheCall %filename%

但我没能找到相反的。

我还发现 references 可以通过用 C++、VB、C# 或 VJ# 编写一个成熟的程序来创建一个压缩(或压缩)文件夹,但这不是我感兴趣的。我感兴趣的是一个简单的从 NSIS 脚本调用。

这可能吗?

【问题讨论】:

【参考方案1】:

虽然 is possible 使用 CompressedFolder 功能来创建 zip 文件并且 NSIS 可以调用本机 API 和 COM 接口,但我不能说这是一个好主意。有些人不喜欢 CompressedFolder 功能并将其禁用。最好在安装程序中包含一个命令行 zip 工具并调用它。

所以回答这个问题;是的,这是可能的,但是从 NSIS 调用 COM 非常痛苦,并且代码会在禁用 CompressedFolder 功能的机器上中断。

【讨论】:

感谢您的澄清。我现在确信最好在安装程序中包含一个命令行 zip 工具并调用它。您是否知道具有与 NSIS 相同的“专有”许可证的工具? (也就是说,我可以合法将它包含在我的安装程序中)

以上是关于从 NSIS 发送到压缩(压缩)文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何将使用 GZIP 压缩的字符串从 Java App 发送到 PHP Web 服务

压缩从浏览器发送的 HTTP Post 数据

NSIS - 重建安装程序 exe 文件

WCF 服务发送 .txt 或 .xls 但不发送 .gz(压缩文件)

用Easy RealMeida Producer将视频文件进行压缩,怎样能保存压缩到一半的文件

在将其发送到 Cloudinary 之前进行 Base64 图像压缩