private void RemoveBinRecursiveFrom(string directories)
{
var subdirectoriesAsArray = System.IO.Directory.GetDirectories(directories);
List<string> directoriesToProcess = new List<string>();
bool wasAnythingDeleted = false;
foreach (var directory in subdirectoriesAsArray)
{
string strippedSubDirectory = FileManager.RemovePath(directory);
if (strippedSubDirectory.ToLowerInvariant() == "bin" ||
strippedSubDirectory.ToLowerInvariant() == "obj")
{
// Use FileManager to delete the directory - It will do it recursively:
//System.IO.Directory.Delete(directory);
FileManager.DeleteDirectory(directory);
wasAnythingDeleted = true;
}
else
{
directoriesToProcess.Add(directory);
}
}
// let's go deeper if we haven't found bin/obj yet
if (!wasAnythingDeleted)
{
foreach (var directory in directoriesToProcess)
{
RemoveBinRecursiveFrom(directory);
}
}
}
}