// ******************************** Subtitles - Find File / Search File #region Subtitles - Find File / Search File private string Subtitles_FindFile(string fileName, string initialDirectory) { if (string.IsNullOrWhiteSpace(fileName) || fileName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0 || !Directory.Exists(initialDirectory)) { return(string.Empty); } SubtitlesSearchData data = new SubtitlesSearchData(fileName); Subtitles_SearchFile(initialDirectory, st_DirectoryDepth, data); return(data.Found ? data.FilePath.ToString() : string.Empty); }
private void Subtitles_SearchFile(string directory, int depth, SubtitlesSearchData data) { try { data.FilePath.Length = 0; data.FilePath.Append(directory).Append(data.FileName); data.Found = File.Exists(data.FilePath.ToString()); if (!data.Found && --depth >= 0) { string[] directories = Directory.GetDirectories(directory); for (int i = 0; i < directories.Length; i++) { Subtitles_SearchFile(directories[i], depth, data); if (data.Found) { return; } } } } catch { /* ignore */ } }