在install4j Delete files and directories
操作中,如果删除文件文件,则可以定义向用户显示的错误消息。这对我来说很好,只要消息没有任何参数。
我想知道的是......如果此特定操作失败(即,由于某些异常原因无法删除文件),是否可以将filespec作为参数传递给错误消息?例如,我的错误消息是一个定义为的资源字符串:
"An attempt to delete a critical file has failed {0}"
当我将此资源消息插入操作的“错误消息”属性时,它看起来像这样:
${ i18n:DeleteCriticalFileFailed( "arg 0" ) }
但我不知道如何将问题文件的filespec作为参数传递给此消息。我查看了install4j帮助文档,特别是此操作的帮助主题,我找不到有关如何实现此目的的任何详细信息。
也许无法做到?但在这种情况下,我正在处理必须删除的文件,以确保在生成(更新)安装中的操作正确性。所以我希望这里有一个解决方案。对我来说,一个选择是使用脚本解决这个问题,但一般来说我更喜欢使用install4j提供的内置操作。
提前感谢您提供的任何帮助或见解。
答案 0 :(得分:0)
操作上的错误消息工具是通用的。每个操作都有这样的错误消息属性,错误消息不会采用特定于特定操作的参数。
您可以覆盖标准的“删除文件和目录”操作,如下所示:
public class MyDeleteAction extends DeleteFileAction {
protected boolean executeForSingleRecursiveFile(Context context, File file, File relativeSourceFile, ProgressAdapter progressAdapter) throws UserCanceledException, IOException {
boolean success = super.executeForSingleRecursiveFile(context, file, relativeSourceFile, progressAdapter);
if (!success) {
Util.showErrorMessage("Could not delete " + file.getPath());
}
return success;
}
}
您还需要在同一个包中使用Beaninfo类:
public class MyDeleteActionBeanInfo extends DeleteFileActionBeanInfo {
}
要编译,您将需要资源\ i4jruntime.jar以及类路径上的bin \ install4j.jar(后者用于bean信息基类)。然后将类文件添加到“Installer-> Custom Code& Resources”,并通过“[Add button] - > Custom Code-> Custom Search中的”Installer-> Screens& Actions“添加操作代码”。