NSIS - 删除除一个文件以外的所有文件
问题描述:
请问任何人都可以澄清一下,卸载时我需要删除除安装文件夹外的所有文件。我怎样才能做到这一点与NSIS脚本?NSIS - 删除除一个文件以外的所有文件
谢谢 Regards, RoboAlex。
答
而是在Anders的第三点打开该文件,因为,我会做这样说:
Rename $INSTDIR\license.txt $PLUGINSDIR\license.txt
RMDir /R $INSTDIR # Remembering, of course, that you should do this with care
CreateDirectory $INSTDIR
Rename $PLUGINSDIR\license.txt $INSTDIR\license.txt
根据当它到达该文件上,它不能删除,RMDir /R
可能将其大部分留在后面,因为我相信当它不能删除某些东西时它会停止;这种方式将正确摆脱它。这也将失去目录统计信息,但这可能并不重要。尽管如此,我建议Anders的第一个两个解决方案之一。他们更精确。
答
关闭我的头顶,有3种方式来做到这一点:
- 使用上的一个文件中删除在编译时与系统等产生的名单上的时间
- 使用FindFirst /在运行时查找下一个/ FindClose并删除基于文件名的许可除外
- 有点破解,但你应该可以打开许可文件进行写/附加操作,然后删除/ RMDir将不能删除文件因为它有一个开放的句柄。
我不认为在文件上打开一个句柄会做什么 - 它会让其他东西被抛在后面。 – 2010-12-01 22:45:41
@克里斯摩根它工作得很好:http://nsis.pastebin.com/wDvmNnCg你认为什么可以留下? RMDir/R不应该真的被使用,所以我不确定这是不是你正在谈论的 – Anders 2010-12-01 23:19:50