예제 #1
0
        private OperationState FindFilesMask(string stPath, string stMask, bool bRecurs) //ищет файлы 1 маски
        {
            string[]     files = null;
            SearchOption so    = SearchOption.AllDirectories;

            if (!bRecurs)
            {
                so = SearchOption.TopDirectoryOnly;
            }

            try
            {
                LogStateAdd("Поиск файлов " + stMask + "...", 0);
                //оказывается родная функция криво ищет файлы
                //принимает *.htm и *.html за одно и то же
                //более прямофикс
                files = FindFiles.Find(stPath, stMask, so);
                FoundFiles.AddRange(files);
            }
            catch (UnauthorizedAccessException UAEx)
            {
                LogStateAdd("Ошибка " + UAEx.Message, OperationState.IOError);
                return(OperationState.IOError);
            }
            catch (PathTooLongException PathEx)
            {
                LogStateAdd("Ошибка " + PathEx.Message, OperationState.IOError);
                return(OperationState.IOError);
            }
            catch (DirectoryNotFoundException DNFEx)
            {
                LogStateAdd("Ошибка " + DNFEx.Message, OperationState.IOError);
                return(OperationState.IOError);
            }
            catch (IOException IOEx)
            {
                LogStateAdd("Ошибка " + IOEx.Message, OperationState.IOError);
                return(OperationState.IOError);
            }

            LogStateAdd("Поиск файлов " + stMask + " завершен. Найдено " + files.Length + " файлов", 0);
            return(OperationState.Success);
        }