Could you avoid the recursion and make the code more straightforward by using SearchOption.AllDirectories?