Одобрено: 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;
Конец;
Атрибуты определяют файлы для поиска в дополнение к одному конкретному обычному компьютеру. Если совпадение найдено, возвращаемое значение – 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 )
Нет ответа на электронную почту, если не было специально запрошено!
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.
г.
- Up to Parent: System.SysUtils
Delphi
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
C++
extern DELPHI_PACKAGE int __fastcall FindFirst(const System::UnicodeString Path, int Attr, TSearchRec &F);
Contents
- 1 Properties
- 2 Description
- 2.1 See Also
- 2.2 Code Examples
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
function | public |
System.SysUtils.pas System.SysUtils.hpp |
System.SysUtils | System.SysUtils |
Description
Searches for the first instance of a file name with a given set of attributes in a specified directory.
FindFirst searches the directory specified by Path
for the first file that matches the file name implied by Path
and the attributes specified by the Attr
parameter. The result is returned in the F
parameter. Use the fields of this search record to extract the needed information. FindFirst returns 0 if a file was successfully located, otherwise, it returns an error code.
The Path
constant parameter is the directory and file name mask, including wildcard characters. For example, ‘.\test\*.*’ specifies all files in the test subdirectory (on Windows).
The Attr
parameter specifies the special files to include in addition to all normal files. Choose from these file attribute constants when specifying the Attr
parameter.
Constant | Description |
---|---|
faInvalid |
Identifies an invalid file. |
faReadOnly |
Identifies read-only files or directories. |
faHidden |
Identifies hidden files or directories. |
faSysFile |
Identifies system files or directories. |
faVolumeID |
Deprecated |
faDirectory |
Identifies a directory. |
faArchive |
Identifies Windows archived files. |
faNormal |
Identifies normal files. |
faTemporary |
Identifies temporary files or directories. |
faSymLink |
Specifies only symbolic link file types. |
faCompressed |
Identifies a compressed file or directory. |
faEncrypted |
Identifies an encrypted file or directory. |
faVirtual |
Reserved for system use. |
faAnyFile |
Specifies any file type. |
Attributes can be combined by adding (Delphi) or or-ing (C++) their constants or values. For example, to search for read-only and hidden files in addition to normal files, pass (faReadOnly + faHidden) in Delphi or (faReadOnly | faHidden) in C++ as the Attr
parameter. To include only normal files, pass zero for the Attr
parameter.
Note: FindFirst allocates resources (memory) that must be released by calling FindClose.
Note: Some of the file attribute constants are not valid on all platforms. For example, faVolumeID and faArchive do not work on MAC OS.
See Also
- System.SysUtils.FindClose
- System.SysUtils.FindNext
- Disk And Directory Support Routines
Code Examples
- FindFirst (C++)
- FindFirst (Delphi)
← →
Dmitriy M. Volkov
(2003-11-16 00:10)
[0]
Добрый день!
Мне не удалось найти в справке Дельфи коды ошибок, которые возвращают функции FindFirst и FindNext. Можно их где-то посмотреть?
← →
Dimaxx
(2003-11-16 00:40)
[1]
В модуле Windows.pas
← →
Johnmen
(2003-11-16 00:41)
[2]
…error codes defined by the operating system.
…
For a complete list of error codes, see the WINNT.H header file in the Win32 SDK.
MurCode
- Форумы
- Поиск
- О проекте
X11
Дата: 09.08.2014 19:25:32
1. Не могу нигде найти коды ошибок и что они означают.
2. Не могу понять, почему папку не находит
function TExportToYRL.GetDirectoryLastWriteTime(path: string): TDateTime; var SearchRec1: sysUtils.TSearchRec; LTime: TFileTime; Systemtime: TSystemtime; ff: integer; begin //if path[Length(path)] = PathDelim then Delete(Path, Length(Path), 1);// удаляем слеш ff := sysUtils.FindFirst(path, faDirectory, SearchRec1); // здесь код 3 if ff = 0 then try FileTimeToLocalFileTime(SearchRec1.FindData.ftLastWriteTime, LTime);//конвертируем время изменения папки в локальное время (Converts a file time to a local file time) FileTimeToSystemTime(LTime, SystemTime);// конвертируем время изменения файла, в системное время (Converts a file time to system time format) result := SystemTimeToDateTime(SystemTime);//конвертируем системное время в локальное, с учётом UTC // log(path + ': ' + DateTimeToStr(SystemTimeToDateTime(SystemTime))); finally sysUtils.FindClose(SearchRec1); end;// try end;
ff получает значение 3, что это значит?
Папка, содержащаяся в «path» 100% существует. Что не так?
Надо передавать со слешем или без?
X11
Дата: 09.08.2014 19:29:20
нашёл
https://groups.google.com/forum/#!topic/borland.public.delphi.objectpascal/e_h5FREbO5I |
---|
FindFirst maps to the API function FindFirstFile, FindNext to FindNextFile. Error return values you can expect from these functions are (from windows.pas): { The system cannot find the file specified. } { The system cannot find the path specified. } { Access is denied. } { There are no more files. } { The device is not ready. } |
но папка-то существует!!!
X11
Дата: 09.08.2014 19:30:50
если передавать путь без завершающего слеша, то получаю ошибку 2 «ERROR_FILE_NOT_FOUND»
X11
Дата: 09.08.2014 19:31:31
X11 |
---|
но папка-то существует!!! |
ой…. наверное я того
чччД
Дата: 09.08.2014 19:57:39
X11,
Ирина Сыромятникова Алхимик с боевым дипломом |
---|
… В пути боевые маги не скучали: они квасили по-свински, занимались тренировками на крыше вагона и пулялись фаерболами в сусликов. (Не видишь? А он там есть!) … |
X11
Дата: 09.08.2014 20:11:12
странно, что в доках эмбы нет кодов возврата
чччД
Дата: 09.08.2014 20:22:13
X11 |
---|
странно, что в доках эмбы нет кодов возврата |
+ В выходные — отдыхать нужно!
Доки
Дата: 10.08.2014 12:05:52
X11 |
---|
странно, что в доках эмбы нет кодов возврата |
Доки эмбы не дублируют доки MS:
MSDN |
---|
ERROR_FILE_NOT_FOUND 2 (0x2) The system cannot find the file specified. ERROR_PATH_NOT_FOUND ERROR_TOO_MANY_OPEN_FILES |