public static List <LocalMediaFile> GetFiles(string path, LocalMediaDiscoverySettings settings) { List <LocalMediaFile> mediaFiles = new List <LocalMediaFile>(); if (!Directory.Exists(path)) { throw new DirectoryNotFoundException($"Directory {path} does not exist."); } foreach (string fileName in Directory.GetFiles(path)) { if (IsMediaFile(fileName, settings)) { mediaFiles.Add(new LocalMediaFile(fileName)); } } if (settings.Recursive) { foreach (string folderPath in Directory.GetDirectories(path)) { mediaFiles.AddRange(GetFiles(folderPath, settings)); } } return(mediaFiles); }
public static bool IsMediaFile(string fileName, LocalMediaDiscoverySettings settings) { string extension = Path.GetExtension(fileName).ToLower(); if (extension == null) { return(false); } if (!settings.Extensions.Contains(extension)) { return(false); } if (settings.ExcludeByPattern != null) { if (Regex.IsMatch(fileName, settings.ExcludeByPattern)) { return(false); } } return(true); }
public LocalMediaDiscoveryService(string path) { _rootPath = path; _settings = new LocalMediaDiscoverySettings(); }
public LocalMediaDiscoveryService(string path, LocalMediaDiscoverySettings settings) : this(path) { _settings = settings; }