void Search(Folder f, string SearchTerm, bool STFS, bool Deleted, bool Files, bool Folders) { if (stop) { return; } this.Invoke((MethodInvoker)delegate { this.Text = "Searching for \"" + SearchTerm + "\"" + " in " + f.FullPath; }); foreach (File file in f.Files()) { if (stop) { return; } if (Files) { if (file.Name.ToLower().Contains(SearchTerm.ToLower()) || file.SizeFriendly.ToLower().Contains(SearchTerm.ToLower())) { AddFile(file); } else if (STFS && file.IsSTFSPackage()) { if (file.TitleName().ToLower().Contains(SearchTerm.ToLower()) || file.TitleID().ToString("X").ToLower().Contains(SearchTerm.ToLower()) || file.ContentName().ToLower().Contains(SearchTerm.ToLower()) || file.DeviceID().ToHexString().ToLower().Contains(SearchTerm.ToLower()) || file.ProfileID().ToHexString().ToLower().Contains(SearchTerm.ToLower()) || file.ConsoleID().ToHexString().ToLower().Contains(SearchTerm.ToLower())) { AddFile(file); } } } } foreach (Folder ff in f.Folders()) { if (stop) { return; } if (Folders) { if (ff.Name.ToLower().Contains(SearchTerm.ToLower())) { AddFolder(ff); } else if(STFS) { if (ff.GameName() != null) { if (ff.GameName().ToLower().Contains(SearchTerm.ToLower())) { AddFolder(ff); } } } } ff.ReturnDeletedEntries = Deleted; Search(ff, SearchTerm, STFS, Deleted, Files, Folders); } }