using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; class Program { public static void Main(string[] args) { if (args.Length < 2 ) { Console.WriteLine(value: "ERROR: args = null please provide a path and a file specification to search for."); Console.WriteLine(value: "Example: list c:\\ *.dll"); } else { DirectoryInfo testdr = new DirectoryInfo(path: args[0]); WalkDirectoryTree(testdr, searchname: args[1]); } } public static void WalkDirectoryTree(DirectoryInfo dr, string searchname) { System.IO.FileInfo[] files = null; DirectoryInfo[] subDirs = null; try { files = dr.GetFiles(searchname); } catch (Exception ex) { //Console.WriteLine(ex.Message); } if (files != null) { foreach (FileInfo fi in files) { string dir = fi.DirectoryName; string file = fi.ToString(); Console.WriteLine(value: dir + file); } subDirs = dr.GetDirectories(); Parallel.ForEach(subDirs, dir => WalkDirectoryTree(dir, searchname)); } } public override bool Equals(object obj) { return base.Equals(obj); } public override int GetHashCode() { return base.GetHashCode(); } public override string ToString() { return base.ToString(); } }