using System.Collections.Generic;
public static void Main() {
foreach (var file in FileUtil.GetFiles("c:\\", "aria2c.exe")) {
public static class FileUtil {
public static IEnumerable<string> GetFiles(string root, string searchPattern) {
Stack<string> pending = new Stack<string>();
while (pending.Count != 0) {
var path = pending.Pop();
next = Directory.GetFiles(path, searchPattern);
if(next != null && next.Length != 0)
foreach (var file in next) yield return file;
next = Directory.GetDirectories(path);
foreach (var subdir in next) pending.Push(subdir);