static void foundReached(object sender, FoundEventArgs e) { //Console.WriteLine("{0} was found. It {1} the filtration.", e.Name, //e.IsFiltrationPassed ? "passed" : "didn't pass"); if (!e.Name.EndsWith("LICENSE.txt")) { e.ExcludeEntry = true; } }
public IEnumerable <string> DirSearch(string sDir, bool isFirstTimeCalled = true) { if (isFirstTimeCalled) { Start?.Invoke(this, null); } if (Directory.Exists(sDir)) { foreach (string file in Directory.GetFiles(sDir)) { var args = new FoundEventArgs(); args.Name = $"File {file}"; args.IsFiltrationPassed = predicate(file); OnFileFoundReached(args); if (args.IsFiltrationPassed && !args.ExcludeEntry) { yield return(file); } } foreach (string directory in Directory.GetDirectories(sDir)) { var args = new FoundEventArgs(); args.Name = $"Directory {directory}"; args.IsFiltrationPassed = predicate(directory); OnDitectoryFoundReached(args); if (args.IsFiltrationPassed) { yield return(directory); } foreach (var dirSearch in DirSearch(directory, false)) { yield return(dirSearch); } } } if (isFirstTimeCalled) { Finish?.Invoke(this, null); } }
protected void OnDitectoryFoundReached(FoundEventArgs e) { DitectoryFound?.Invoke(this, e); }
protected void OnFileFoundReached(FoundEventArgs e) { FileFound?.Invoke(this, e); }