/// <summary> /// Finds all files by mask. /// </summary> /// <param name="path">The path.</param> /// <param name="mask">The mask.</param> /// <param name="handler">The handler.</param> /// <returns></returns> public string[] FindAllFiles(string path, string mask, FindFilesHandler handler = null) { List <string> files = new List <string>(); string[] patterns = mask.Split('|'); foreach (string pattern in patterns) { FindAllFilesRecursively(path, pattern, files, handler); } return(files.ToArray()); }
/// <summary> /// Finds all files recursively. /// </summary> /// <param name="path">The path.</param> /// <param name="mask">The mask.</param> /// <param name="list">The list.</param> /// <param name="handler">The handler.</param> private void FindAllFilesRecursively(string path, string mask, List <string> list, FindFilesHandler handler = null) { try { foreach (string f in Directory.GetFiles(path, mask)) { list.Add(f); handler?.Invoke(f, list.Count); } foreach (string d in Directory.GetDirectories(path)) { FindAllFilesRecursively(d, mask, list, handler); } } catch (Exception ex) { _logger.LogWarning(ex.Message); } }