前有有讲过,如何通过JAVA,将JAR制作成自解压的exe文件。现收到需求:用户下载exe时,自动往exe文件中添加或覆盖某文件。
思路:
1、由于自解压的exe文件由sfx、config.txt、7z压缩文件组成。所以直接用SevenZFile是打不开该文件的。
2、从exe文件中,找到config.txt结尾标识的位置(pos).
3、将exe文件拆会成两具临时文件件:sfx+config.txt文件,z7.7z压缩包文件。
4、调用SevenZFile,添加中覆盖文件组成新的压缩文件newz7.7z压缩包。
5、合并sfx+config.txt文件、newz7.7z压缩包成exe生解压文件。
代码如下:
其中:d:\test\7z自解压.exe 为自解压exe文件。