Application: CCleaner 3.18.1707
OS: Windows XP Pro (SP3)
Bug: An inclusion-rule takes precedence over an exlusion-rule when the exclusion-rule is applied to a folder that does not contain any files or sub-folders.
Steps to reproduce:
1. Create a root folder anywhere. (e.g. C:\MY_ROOT_FOLDER\)
2. Create a file within the root folder. (e.g. C:\MY_ROOT_FOLDER\WITHIN_ROOT.txt)
3. Create a sub-folder within the root folder. (e.g. C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\)
4. Create a file within the sub-folder. (e.g. C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\WITHIN_SUB.txt)
The folder structure resembles the following:
C:\MY_ROOT_FOLDER\ | +---WITHIN_ROOT.txt | +---C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\ | +---WITHIN_SUB.txt
5. Inside CCleaner, create an exclusion-rule for "C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\"
- Check "Drive or Folder"
- Check "All Files" (under File Types)
6. Inside CCleaner, create an inclusion-rule for "C:\MY_ROOT_FOLDER\"
- Check "Drive or Folder"
- Check "All Files" (under File Types)
- Select "Include files and subfolders"
The way the rules are intended to be setup is that I want CCleaner to remove any file or sub-folder that appears under "C:\MY_ROOT_FOLDER\", however, I want "C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\" to be protected from removal whether or not it contains a file or any sub-folders below it.
So let's run CCleaner with these rules. Great! It seemingly worked as it should. It did not remove "C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\" or the text file contained within it.
Now, lets see how the rules perform if we trash "WITHIN_SUB.txt" making "C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\" empty. So I manually remove "WITHIN_SUB.txt" making sure "C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\" is indeed empty. While the folder *is* empty I'm hoping the exclusion-rule will protect it from being removed.
So let's run CCleaner again. This time, "C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\" gets removed.
The exclusion-rule has failed me and the inclusion-rule for the parent folder took precedence and removed this folder anyway. The exclusion-rule only seems to be ignored if there are no files or sub-folders inside of "C:\MY_ROOT_FOLDER\MY_SUB_FOLDER\".
What I'd like to see: If an exclusion-rule is setup for a folder, don't allow for the folder's removal (via inclusive-rules) regardless of whether or not it contains any files or sub-folders.