Поиск файла по всем дискам и директориям.
static void Main(string[] args) { foreach (DriveInfo drive in DriveInfo.GetDrives()) { FindFiles(drive.RootDirectory.ToString(), "notepad++.exe"); } Console.Out.WriteLine("Press any key"); Console.ReadKey(); } public static void FindInDir(DirectoryInfo dir, string pattern, bool recursive) { Task.Factory.StartNew(() => { try { foreach (FileInfo file in dir.GetFiles(pattern)) { Console.Out.WriteLine(file.FullName); } } catch (UnauthorizedAccessException) { } if (recursive) { DirectoryInfo[] subdir = dir.GetDirectories(); int i; int l = subdir.Length; for (i = 1; i < l; i++) { try { FindInDir(subdir[i], pattern, recursive); } catch (UnauthorizedAccessException) { Console.Out.WriteLine("Отказано в доступе " + subdir[i].Name); } } } }); } public static void FindFiles(string dir, string pattern) { Task.Factory.StartNew(() => { FindInDir(new DirectoryInfo(dir), pattern, true); }); } }