void WalkDir(string path, WalkDirCallback fn) { string[] dirs = Directory.GetDirectories(path); for (int i = 0; i < dirs.Length; i++) { RecurseDir(dirs[i], fn); } }
void RecurseDir(string path, WalkDirCallback fn) { bool continueRecurse = fn(path); if (continueRecurse) { WalkDir(path, fn); } }