如何删除用*创建的文件

时间:2015-03-13 18:58:48

标签: installer nsis

我正在使用NSIS创建一个安装程序,该安装程序将安装100多个文件。

我知道要指定要安装的文件,可以使用

File /r ..\release\*

哪种方法效果很好。

但是我应该怎样做才能卸载这些文件(对于我知道安装的每个文件,单独使用Delete命令。)

我已经看过RMDir,它看起来并不安全。而here也没有效果。

感谢您的时间

1 个答案:

答案 0 :(得分:0)

RMDir是安全的。它使用了doc警告的/r标志:

  

警告:在卸载程序中使用RMDir / r $ INSTDIR是不安全的。   虽然不太可能,但用户可能会选择安装到本程序   Files文件夹,因此该命令将清除整个程序   Files文件夹,包括与其无关的其他程序   卸载程序。用户还可以放置其他文件,但程序的文件   并期望它们会被程序删除。解决方案是   可以轻松卸载安装的文件   安装程序

鉴于此,我认为您只需手动删除所有子目录,然后删除父目录。我能想到的唯一一种情况是,当你的应用程序动态生成新文件夹时,这种情况不会起作用。如果是这样的话,即使是卸载日志也无法帮助您。

在你创建的子目录上使用/ r也是完全可以的。关注的是删除顶级安装目录,以及其中可能存在的所有内容。如果您的安装程序推出了一个包含名为images的其他资产的文件夹,其中也包含子目录,则没有理由

RMDir /r $INSTDIR\images`

会很危险。