有人知道一个使用名为RtlCompressBuffer的Windows API函数压缩文件的好工具吗?我想用这个方法压缩一个可执行文件。
Windows有几个这样的高级工具,具体取决于您想要完成的任务。如果你想要一个以压缩形式存储在文件系统上的可执行文件,那么你可能想要使用NTFS压缩。要用它压缩可执行文件,请使用FSCTL_SET_COMPRESSION
标志调用DeviceIoControl
。
如果你想压缩一个文件进行分发(例如,这样用户就可以更快地下载它),你通常想把它放在一个CAB文件中,然后你可以自己发货,或者(通常更喜欢)把它打包到MSI包中。至于预打包的工具,你可以看看微软的cabarc
。如果您想在自己的代码中完成这项工作,可以使用文件压缩接口(FCI)。
需要注意的是:尽管这两个都进行压缩(也支持匹配的解压缩),但不,我真的不确定其中一个(更不用说两者)是否真的使用RtlCompressBuffer实现。我认为微软的文档并没有详细说明他们的实现。