public void WalkDirectoryTree_WithoutFiles_Test(string root, bool requiredDirectoryExclude, bool directoryExclude) { DirectoryTraversalIterator directoryTraversal = new DirectoryTraversalIterator(s => s.Contains("g")); directoryTraversal.RequiredDirectoryFound += (sender, args) => args.ExcludeDirectory = requiredDirectoryExclude; directoryTraversal.DirectoryFound += (sender, args) => args.ExcludeDirectory = directoryExclude; directoryTraversal.FileFound += (sender, args) => args.ExcludeFile = true; IEnumerable <string> result = directoryTraversal.WalkDirectoryTree(new DirectoryInfo(root)); if (!directoryExclude) { if (!requiredDirectoryExclude) { var unfiltred = result.Any(n => !n.Contains("g")); Assert.AreEqual(unfiltred, false); } else { var unfiltred = result.Any(n => n.Contains("g")); Assert.AreEqual(unfiltred, false); } } else { Assert.AreEqual(result.Count(), 0); } }
static void Main(string[] args) { string[] drives = Environment.GetLogicalDrives(); System.IO.DriveInfo di = new System.IO.DriveInfo(drives[1]); DirectoryInfo rootDir = di.RootDirectory; DirectoryInfo d = new DirectoryInfo("D:/Programs/tabs/13/megadeth"); DirectoryTraversalIterator dt = new DirectoryTraversalIterator(s => s.Contains("")); dt.FileFound += (sender, eventArgs) => { Console.WriteLine(eventArgs.FileInfoArgs.FullName); }; dt.RequiredFileFound += (sender, eventArgs) => { Console.WriteLine(eventArgs.FileInfoArgs.FullName); }; dt.RequiredDirectoryFound += (sender, eventArgs) => Console.WriteLine(eventArgs.DirectoryInfoArgs.FullName); dt.WalkDirectoryTree(rootDir).ToList(); Console.Read(); }