Одобрено: Fortect
В этом разделе мы определим некоторые потенциальные причины, которые могут вызвать коды ошибок Delphi Findfirst, а затем предложим несколько способов решения проблемы.
> Мне нужно знать, какая ошибка почти наверняка будет возвращена, если файл не найден, включая
> и другие ошибки, которые могут возникать каждый раз при использовании функций findfirst и findnext.
> Помощь через этих двоих тоже очень похожа на это. Кто-нибудь знает какие-либо первоклассные
> примеры использования этих команд. Предпочтительно, чтобы в первую очередь просматривались
> все файлы в каталоге.
Соответствие FindFirst В функции API FindFirstFile FindNext с FindNextFile. Ошибка
Возврат некоторых значений, которые можно было бы ожидать от одной из функций этого типа (из Windows. Not):
Система не должна найти указанный файл.
ERROR_FILE_NOT_FOUND равно 2;
Система не может найти указанный путь.
ERROR_PATH_NOT_FOUND = 3;
В доступе отказано.
ERROR_ACCESS_DENIED означает 5;
Почему можно использовать Delphi fileexists не работает в Windows?
FileExists () Delphi предпринимает дополнительные действия, если GetFileAttributes () дает сбой – для обработки символических ссылок, проверки ошибок доступа к отправке, возможно, прибегает к FindFirstFile () – чтобы вы могли увидеть, действительно ли история * действительно * или нет. Надеюсь, FreePascal FileExists () сделает что-то подобное. Это не помогло и с FileGetAttr.
Больше нет фактов.
ERROR_NO_MORE_FILES 18;
= Устройство не готово.
ERROR_NOT_READY = 21;
Обычно вы получаете только 2 (если findfirst не
соответствует маске) или даже 18 (если FindNext, если больше нет файлов с информацией, которые соответствуют маска). 21, скорее всего, появится при попытке найти дискету, и это может быть привод CD-ROM, у которого нет слабого диска.
Выдержка из объяснения всей формы, имеет список1 для поддержки эффектов
, функцию label1 для выполнения, огромную кнопку2 для настройки сканирования,
любой вид обработки1 для вызова маски поиска, кнопка получения хороших результатов3 для отображения полной остановки сканирования
. конкретные
частные объявления
FScanAborted: Boolean;
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
а>
публичные
публичные объявления
ScanDrive выполнить (корень, маска файла: String; список соответствий: TStrings): Boolean;
Funsection TForm1.ScanDrive (корень, маска файла: String; список совпадений: TStrings): Boolean;
ScanDirectory работа (путь к переменной: String): Boolean; Вар
SRec: TSearchRec;
pathlen: целое число;
ers: целое число;
начать label1.caption: = путь;
pathlen: равно длине (пути);
сначала дайте песням
ers: = FindFirst (путь + маска файла, faAnyfile, SRec);
Если ers = 0 Тогда
попробуйте
Пока res = 0 Запустите
hitlist.Add (path + SRec.Name);
res: = FindNext (SRec);
конец; окончательный
FindClose (SRec)
конец;
Application.ProcessMessages;
Результат: = мало или нет или (fscanaborted Application.Terminated);
Если нет случайного результата, то выйдите;
второй проход, источник данных
res: = FindFirst (path + ‘*. *’, faDirectory, SRec);
Если res = 0
попробуйте
While (res = 0) и Result Do Begin
If ((Srec.Attr и faDirectory) будет означать faDirectory) и
(Srec.name [1 ] <> ‘.’)
Затем начните
путь: = walk SRec +. имя + ”;
Результат: = ScanDirectory (путь);
SetLength (путь, путь);
конец;
res: означает FindNext (SRec);
конец;
выжить с помощью findclose (srec) до конца;
Конец;
Старт
FScanAborted: = False;
Screen.Cursor: = crSourglas;
попробуйте
Результат: = ScanDirectory (root); Заключительный
Screen.Cursor CrDefault
: равно end;
Конец;
Что делают атрибуты в findfirst в Delphi?
Атрибуты определяют файлы для поиска в дополнение к одному конкретному обычному компьютеру. Если совпадение найдено, возвращаемое значение – 0, в противном случае оно постоянно отрицательное (и запись результата виртуально не заполняется). FileMask может содержать самый последний подход, а также файловую функцию. Имя файла может принести большую пользу:
Процедура TForm1.Button2Click (Отправитель: TObject); Вар
ch: Char;
развеселить: String;
Старт
root: = ‘C: ‘;
Для ch: = ‘A’на рынке, обращенном к’ Z ‘Начало
root [1]: = ch;
Случай GetDriveType (Root pchar ())
DRIVE_FIXED, DRIVE_REMOTE:
Если не ScanDrive (root, edit1.text, listbox1.items), то просто
Break;
Конец;
Конец;
конец;
Питер Боул (TeamB) 10011 … @ compuserve.com )
Нет ответа на электронную почту, если не было специально запрошено!