DosFindFirst
Bindings: C, MASM
This call finds the first file object or group of file objects whose
name(s) match the specification.
DosFindFirst (FileName, DirHandle, Attribute, ResultBuf,
ResultBufLen, SearchCount, Reserved)
FileName (PSZ) - input
Address of the ASCIIZ path name of the file or subdirectory to be
found. The name component may contain global file name characters.
DirHandle (PHDIR) - input/output
Address of the handle associated with a specific DosFindFirst request.
The values that can be specified are:
Value Definition
0001H Assign handle 1, which is always available to a process.
FFFFH The system allocates and returns a handle. If on input FFFFH
is specified, on output DirHandle contains the handle
allocated by the system.
The DosFindFirst handle is used with subsequent DosFindNext
requests. Reuse of this handle in another DosFindFirst
closes the association with the previous DosFindFirst and
opens a new association.
Attribute (USHORT) - input
Attribute value that determines the file objects to be searched for.
Bit Description
15-6 Reserved and must be zero.
5 File archive
4 Subdirectory
3 Reserved and must be zero.
2 System file
1 Hidden file
0 Read only file
These bits may be set individually or in combination. For example, an
attribute value of 0021H (bits 5 and 0 set to 1) indicates a read-only
file that should be archived.
If Attribute is 0, normal file entries are found. Entries for
subdirectories, hidden, and system files, are not returned. If
Attribute is set for hidden or system files, or directory entries, it
is considered an inclusive search. All normal file entries plus all
entries matching the specific attributes are returned. Set Attribute
to hidden+system+directory (all three bits on) to look at all
directory entries except the volume label.
Attribute cannot specify the volume label. Volume labels are queried
using DosQFSInfo. Attributes of a file are queried and set with
DosQFileMode and DosSetFileMode.
ResultBuf (PFILEFINDBUF) - output
Address of the structure that contains the returned directory
information. The information reflects the last DosClose, DosBufReset,
DosSetFileMode, DosSetFileInfo, and DosSetPathInfo calls.
filedate (FDATE)
Structure containing the date of file creation.
Bit Description
15-9 Year, in binary, of file creation
8-5 Month, in binary, of file creation
4-0 Day, in binary, of file creation.
filetime (FTIME)
Structure containing the time of file creation.
Bit Description
15-11 Hours, in binary, of file creation
10-5 Minutes, in binary, of file creation
4-0 Seconds, in binary number of two-second increments, of
file creation.
fileaccessdate (FDATE)
Structure containing the date of last access. See FDATE in
filedate.
fileaccesstime (FTIME)
Structure containing the time of last access. See FTIME in
filetime.
writeaccessdate (FDATE)
Structure containing the date of last write. See FDATE in filedate.
writeaccesstime (FTIME)
Structure containing the time of last write. See FTIME in filetime.
filesize (ULONG)
File size.
filealloc (ULONG)
Allocated file size.
fileattrib (USHORT)
Attributes of the file, defined in DosSetFileMode.
length (UCHAR)
Length of the ASCIIZ name string.
matchfilename (CHAR)
ASCIIZ name string for the first occurrence of FileName.
ResultBufLen (USHORT) - input
Length of ResultBuf
SearchCount (PUSHORT) - input/output
Address of the number of matching entries requested in ResultBuf. On
return, this field contains the number of entries placed into
ResultBuf.
Reserved (ULONG) - input
Reserved, must be set to zero.
rc (USHORT) - return
Return code descriptions are:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
6 ERROR_INVALID_HANDLE
18 ERROR_NO_MORE_FILES
26 ERROR_NOT_DOS_DISK
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
111 ERROR_BUFFER_OVERFLOW
113 ERROR_NO_MORE_SEARCH_HANDLES
206 ERROR_FILENAME_EXCED_RANGE
Remarks
DosFindFirst returns directory entries (up to the number requested in
SearchCount) for as many files or subdirectories whose names and
attributes match the specification and whose information fits in
ResultBuf. On output, SearchCount contains the actual number of directory
entries returned.
DosFindNext uses the directory handle associated with DosFindFirst to
continue the search started by the DosFindFirst request.
Any non-zero return code indicates no handle has been allocated,
including such non-error indicators as ERROR_NO_MORE_FILES.
DosQSysInfo is called by an application to determine the maximum path
length allowed by OS/2.
For programs running without the NEWFILES bit set, only 8.3 filename
format names are returned. These names are changed to uppercase.
Family API Considerations
Some options operate differently in the DOS mode than in OS/2 mode.
Therefore, the following restrictions apply to DosFindFirst when coding
for the DOS mode:
DirHandle must always equal hex 0001H or FFFFH on the initial call to
DosFindFirst. Subsequent calls to DosFindFirst must have a DirHandle of
hex 0001H unless a DosFindClose had been issued. In this case, 0001H or
FFFFH is allowed.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs