After manually cleaning up Visual Studio C++ solutions for a long time, finally I had enough when I was trying to clean a Cocos2d-x project with its nested hierarchy of projects.. each with its own bin/debug/arm folders. So I started searching for a solution using powershell. Then I found this awesome blog post by Ricky.
Unfortunately, Ricky left out one particularly egregious file, the sdf file which contains the parsed symbols for C++ projects and helps with the Visual Studio intellisense. This file easily grows to be a few hundred megs so definitely warrants removal. So, I added a teensy bit to Ricky’s script and my life is now a lot easier.
1 | Get-ChildItem .\ -include ARM,bin,obj,bld,Backup,_UpgradeReport_Files,Debug,Release,ipch -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse };Get-ChildItem -Path *.sdf -Recurse -Force | foreach ($_) { remove-item $_.fullname -Force -Recurse } |
In case you are curious, let’s deconstruct the above command line:
1 | Get-ChildItem .\ -include ARM,bin,obj,bld,Backup,_UpgradeReport_Files,Debug,Release,ipch -Recurse |
The above recursively finds all folders under the current folder that match the names ARM, bin, obj etc.
1 | foreach ($_) { remove-item $_.fullname -Force -Recurse } |
This line simply gets whatever gets passed to it via the pipe command and simply removes everything under it recursively.
It is not too hard to decipher, that all I did was to add one more command to Ricky’s script which simply finds all files that have extension sdf and removes them using the above command.
Enjoy!