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将不能删除文件因为它有一个开放的句柄。
+0

我不认为在文件上打开一个句柄会做什么 - 它会让其他东西被抛在后面。 – 2010-12-01 22:45:41

+0

@克里斯摩根它工作得很好:http://nsis.pastebin.com/wDvmNnCg你认为什么可以留下? RMDir/R不应该真的被使用,所以我不确定这是不是你正在谈论的 – Anders 2010-12-01 23:19:50