[fpc-devel] FindFirst with faAnyFile doesn't return all files.

Graeme Geldenhuys graemeg.lists at gmail.com
Wed Aug 15 10:38:43 CEST 2007


This was posted in the Lazarus mailing list a while back.  Has this
been report or fixed in FPC?

---------------  Copy ------------------------
I have had some headaches while using FindFirst function to search for
files in a folder.
I would share some gained knowledge with the people on this list.

Everybody knows about file attributes (archive, system, hidden, read only).
If someone use FindFirst('*.*', faAnyFile, SearchRec) it assumes that
faAnyFile is enough to get every file from the directory.
No, it is not. If a file has none of the attributes set, the faAnyFile
will not include that file in the search.
Those files, without any of the mentioned attributes set, they have
attribute Normal, and this attribute is not defined as faNormal anywhere
in RTL ( see
http://www.freepascal.org/docs-html/rtl/dos/fileattributes.html ).
If one would like to get all the files from a folder by using FindFirst
and FindNext, then he should use:
FindFirst('*.*', faAnyFile or $00000080, SearchRec);

---------------  END ------------------------

Apparently the same thing occurs in Delphi, but I also believe this is
a bug and should be solve (if not yet done) in FPC.

  - Graeme -

More information about the fpc-devel mailing list