Jump to content

Folders named "tmp" get removed automatically with no warning even if they're not in Custom Files and Folders


Recommended Posts

I have two SVN checkouts nested under C:\SVN. I have CCleaner 3.01 set to recurse through them and delete all .class files (to prep my Java code for a clean build).

It seems that CCleaner 3.01 automatically removes all folders named "tmp" also. This is not documented, not requested in my Custom Files and Folders section, and has the side effect of screwing up my SVN checkouts. This doesn't happen in CCleaner 2.X. It only erases what I ask it to.

 

Thanks

Michael

Link to comment
Share on other sites

What is your recurse code?

How do you have it set up?

 

Also, are your TMP entries ever changing in name/locations, or do they pretty much always have the same name/locations each time?

I would be interested in a step-by-step procedure posted for your CCleaner recurse setup so I can see if there is a way to help you.

 

I will check later to see if you have it here so I can see what I can think of.

 

Don

Link to comment
Share on other sites

I'm not doing anything special to make CCleaner recursively clean c:\SVN.

I just added an additional Custom File/Folder rule to CCleaner to clean out my SVN folders (see the screenshot below).

 

post-41427-050926300 1291483806_thumb.png

 

These tmp entries should match a consistent pattern, because in a Subversion checkout, every folder has a .svn helper data folder inside it.

The structure of this folder is a Subversion standard.

 

According to http://www.piriform.com/docs/ccleaner/using-ccleaner/including-files-and-folders-for-cleaning I have correctly configured CCleaner to search through C:\SVN and all its subfolders and then remove files ending in ".class" and nothing else from those folders.

Link to comment
Share on other sites

Update: This is present in at least one CCleaner 2.x version too.

I found v2.36 and v2.30 on FileHippo and tried them both.

v2.36 also has this bug.

v2.30 does NOT have this bug. It only removes .class files from my c:\SVN folder tree...like I expected.

 

This is definitely a defect.

 

I have tried these versions all on a Windows 7 Enterprise x64 box, but I seriously doubt CCleaner won't show this defect on XP or Vista.

Link to comment
Share on other sites

  • Moderators

Change the last setting to include files only

post-21882-061026000 1291486376_thumb.jpg

 

ADVICE FOR USING CCleaner'S REGISTRY INTEGRITY SECTION

DON'T JUST CLEAN EVERYTHING THAT'S CHECKED OFF.

Do your Registry Cleaning in small bits (at the very least Check-mark by Check-mark)

ALWAYS BACKUP THE ENTRY, YOU NEVER KNOW WHAT YOU'LL BREAK IF YOU DON'T.

Support at https://support.ccleaner.com/s/?language=en_US

Pro users file a PRIORITY SUPPORT via email support@ccleaner.com

Link to comment
Share on other sites

Change the last setting to include files only

post-21882-061026000 1291486376_thumb.jpg

 

 

 

I think my problem has been misunderstood.

 

Time to draw on my years in software QA and get hyper-detailed with steps to reproduce.

 

Try the following. I just confirmed the problem on another machine running Windows Server 2008 R2.

 

Create a folder named "foo" in your C drive.

Create an empty file in C:\foo. Name it 1.txt.

Create another empty file in c:\foo. Name it 2.bar

Create an empty folder in c:\foo named "tmp"

 

At this point C:\foo\ should have the following

c:\foo\tmp\

c:\foo\1.txt

c:\foo\2.bar

 

In CCleaner, add a Custom File or Folder rule (Options -> Include -> Add).

Under the "Include" section browse to c:\foo.

Under the "File Types" section, select "File Types" and enter "*.bar"

Under the "Options" section, select "Include files, subfolders and the folder itself".

 

Run CCleaner.

When it finishes, open c:\foo.

You will see that 2.bar and the folder named "tmp" both got erased, even though the docs distinctly specify that your settings should have only resulted in 2.bar being erased.

 

If you downgrade to CCleaner version 2.30 and repeat these steps you will see that only 2.bar gets erased, which is what is expected even in CCleaner 3.01

 

Hope this makes it clearer.

Link to comment
Share on other sites

  • Moderators

I was able to recreate this using the above steps

 

I was then able to circumvent this by doing the following

 


  1.  
  2. Create a folder named "foo" in your C drive.
  3. Create an empty file in C:\foo. Name it 1.txt.
  4. Create another empty file in c:\foo. Name it 2.bar
  5. Create a folder in c:\foo named "tmp"
  6. Create a file in \tmp called 3.bar
  7. At this point C:\foo\ should have the following
    c:\foo\tmp\
    c:\foo\1.txt
    c:\foo\2.bar
    c:\foo\3.bar
  8. In CCleaner, add a Custom File or Folder rule (Options -> Include -> Add).
  9. Under the "Include" section browse to c:\foo.
  10. Under the "File Types" section, select "File Types" and enter "*.bar"
  11. Under the "Options" section, select "Include files and subfolders".

 

A clean of this will remove 2.bar and 3.bar and leave 1.txt and \tmp

the issue here is you are using a folder clean, and asking it to delete the folder itself (which in turn tells it to remove empty folders). This can be confirmed by following your steps and adding hello.txt to the \tmp folder

so All you need to do to stop this from occuring is change the setting to "Include files and subfolders".

 

ADVICE FOR USING CCleaner'S REGISTRY INTEGRITY SECTION

DON'T JUST CLEAN EVERYTHING THAT'S CHECKED OFF.

Do your Registry Cleaning in small bits (at the very least Check-mark by Check-mark)

ALWAYS BACKUP THE ENTRY, YOU NEVER KNOW WHAT YOU'LL BREAK IF YOU DON'T.

Support at https://support.ccleaner.com/s/?language=en_US

Pro users file a PRIORITY SUPPORT via email support@ccleaner.com

Link to comment
Share on other sites

Ok, that worked.

Thanks Nergal!

 

I guess the real issue is that the docs (that link I referenced in an earlier post) on this need to be cleaned up a bit, I think.

 

From that page: "This selection is only relevant when you have selected Drive or Folder and have selected a folder. If you select Recurse Subfolders, CCleaner will include all subfolders within the selected folder. If this option is cleared, CCleaner will only clean items at the first folder level."

 

Nothing is stated about what happens if you choose the third option: "files, subfolders, and the folder itself".

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.