private DirectoryEntityCollection GetEntities(string path) { var files = GetFiles(path); if (args.StopSearching) { return(files); } args.Clear(); var directories = GetDirectories(path); if (args.StopSearching) { return(directories); } args.Clear(); files.Join(directories); var filteredFiles = FilterFiles(files.Copy()); if (args.StopSearching) { return(filteredFiles); } args.Clear(); var filteredDirectories = FilterDirectories(files.Copy()); if (args.StopSearching) { return(filteredDirectories); } args.Clear(); var result = filteredFiles.Join(filteredDirectories); return(result); }