我正在编写一个需要访问c:\program files\program_name\
内部文件的程序。
我的目标文件将始终位于\program_name\program_name\bin\something.exe
但是,因为程序是从存档中提取的,如果用户不正确地解压缩它,它将只是\program_name\bin\something.exe
,跳过整个级别。
目前我基本上是获取c:\program files\
的内容,收集包含program_name
的所有文件夹的名称,然后将它们添加到列表中,然后使用列表循环遍历每个文件夹看看里面是否有program_name
等等,应该最终引导我查看结果。
基本上我正在为每种可能性创建大量代码。有更明智的方法吗?
答案 0 :(得分:3)
听起来您可以从写入注册表的安装程序中受益。然后,即使用户安装到一个奇怪的位置,您也会知道所有文件和文件夹的位置。
答案 1 :(得分:0)
要扩展Charlie所说的内容 - 您可以将原始应用程序包装在某种统一的安装程序类型中,这样可以编写注册表并将应用程序解压缩到用户决定的任何位置。安装程序将提示用户安装到的位置,并将提取到该位置。可以将InnoSetup配置为编写卸载信息,放置卸载链接等。您可以自定义InnoSetup脚本的卸载程序部分,以执行您需要的任何清理,和/或在必要时调用其他外部程序。
InnoSetup允许您在实际的安装程序exe中打包东西,因此您只需分发一个flle。我可以验证这是否有效 - 尽管我从来没有尝试过包装大文件。
以下是InnoSetup的链接:http://www.jrsoftware.org/isinfo.php