如何在Inno Setup安装包的ISS代码中读取内置的文件内容
可以实现读取安装包内部的文件,操作方法如下:
步骤1:在[Files]段声明内嵌文件
将你需要读取的内部文件加入[Files]配置段,添加dontcopy标记,该标记表示文件仅打包进安装包,不会被主动释放到目标系统:
[Files] Source: "你本地待打包的文件路径\目标文件名"; Flags: dontcopy
步骤2:在代码中提取并读取文件
在[Code]段需要读取文件的位置,先调用ExtractTemporaryFile将内嵌文件提取到安装程序的运行时临时目录,再调用你原来用的LoadStringsFromFile读取即可:
var Lines: TArrayOfString; begin // 提取安装包内的目标文件到临时目录 ExtractTemporaryFile('目标文件名'); // 读取临时目录中的文件内容,{tmp}是Inno Setup内置的临时目录常量 LoadStringsFromFile(ExpandConstant('{tmp}\目标文件名'), Lines); // 后续可直接操作Lines数组中的文件内容 end;
注意事项
- 标记了
dontcopy的文件不会出现在安装进度的文件列表中,也不会在目标设备上留存冗余文件 - 提取到临时目录的文件会在安装程序退出后自动清理,无需手动删除
- 如果需要读取二进制文件,可以替换
LoadStringsFromFile为LoadStringFromFile读取字节数组即可
内容的提问来源于stack exchange,提问作者Vladimir Yanakiev
相关产品推荐
相关产品推荐

