This is an updated version of the 'A-Faster-Directory-Enumerator' on codeproject.
MoveNext() is rewritten without recursion. (C:\Windows\winsxs\ was causing a stack overflow exception due to too many folders and repeated calls to MoveNext, causing the entire application to abruptly crash).
Increased speed 60% by not using Directory.GetDirectories(...), and if the search filter is * or *.* then the code is even faster because a separate call to fetch the directories is not required.
Increased...