示例#1
0
        // ******************************** 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);
        }
示例#2
0
        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 */ }
        }