I noticed this warning in the documentation for NSIS's RmDir
method:
Warning: using RMDir /r $INSTDIR in the uninstaller is not safe. Though it is unlikely, the user might select to install to the Program Files folder and so this command will wipe out the entire Program Files folder, including other programs that has nothing to do with the uninstaller.
This scares me, since up until now I had not considered this possibility and I had that exact line in my script. But when I tested if this would happen by installing my program to a pre-existing location containing pre-existing files and then running my uninstaller with RmDir /r /REBOOTOK $INSTDIR
in it, the existing files were left unharmed.
Is this an outdated warning? I'm using NSIS v. 2.46.
Thanks
RmDir /r will delete the whole directory tree if it can, so it is "unsafe". See http://nsis.sourceforge.net/Uninstall_only_installed_files for a way to only delete the files you install
RMDir on a directory without /r (recursive) flag will remove the directory if it is empty. At some point they have added this feature, not sure when.
NSIS Scripting Reference - RMDir
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With