Click to Rate and Give Feedback
MSDN
MSDN Library
System Services
File Services
File Systems
File Management
 FindNextFile Function

  Switch on low bandwidth view
FindNextFile Function

Continues a file search from a previous call to the FindFirstFile or FindFirstFileEx function.

Syntax

C++
BOOL WINAPI FindNextFile(
  __in   HANDLE hFindFile,
  __out  LPWIN32_FIND_DATA lpFindFileData
);

Parameters

hFindFile [in]

The search handle returned by a previous call to the FindFirstFile or FindFirstFileEx function.

lpFindFileData [out]

A pointer to the WIN32_FIND_DATA structure that receives information about the found file or subdirectory.

The structure can be used in subsequent calls to FindNextFile to indicate from which file to continue the search.

Return Value

If the function succeeds, the return value is nonzero and the lpFindFileData parameter contains information about the next file or directory found.

If the function fails, the return value is zero and the contents of lpFindFileData are indeterminate. To get extended error information, call the GetLastError function.

If the function fails because no more matching files can be found, the GetLastError function returns ERROR_NO_MORE_FILES.

Remarks

This function uses the same search filters that were used to create the search handle passed in the hFindFile parameter. For additional information, see FindFirstFile and FindFirstFileEx.

The order in which the search returns the files, such as alphabetical order, is not guaranteed, and is dependent on the file system. If the data must be sorted, the application must do the ordering after obtaining all the results.

Note  In rare cases, file attribute information on NTFS file systems may not be current at the time you call this function. To be assured of getting the current NTFS file system file attributes, call the GetFileInformationByHandle function.

The order in which this function returns the file names is dependent on the file system type. With the NTFS file system and CDFS file systems, the names are usually returned in alphabetical order. With FAT file systems, the names are usually returned in the order the files were written to the disk, which may or may not be in alphabetical order. However, as stated previously, these behaviors are not guaranteed.

If the path points to a symbolic link, the WIN32_FIND_DATA buffer contains information about the symbolic link, not the target.

Transacted Operations

If there is a transaction bound to the file enumeration handle, then the files that are returned are subject to transaction isolation rules.

Examples

For an example, see Listing the Files in a Directory.

Requirements

Minimum supported clientWindows 2000 Professional
Minimum supported serverWindows 2000 Server
HeaderWinBase.h (include Windows.h)
LibraryKernel32.lib
DLLKernel32.dll
Unicode and ANSI namesFindNextFileW (Unicode) and FindNextFileA (ANSI)

See Also

File Management Functions
FindClose
FindFirstFile
FindFirstFileEx
GetFileAttributes
SetFileAttributes
Symbolic Links
WIN32_FIND_DATA

Send comments about this topic to Microsoft

Build date: 7/9/2009

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
vb.net syntax      dmex   |   Edit   |   Show History
<DllImport("kernel32.dll", CharSet:=CharSet.Unicode, SetLastError:=True)> _
Public Shared Function FindNextFile(<[In]> ByVal hFindFile As SafeFileHandle, <Out> ByRef lpFindFileData As WIN32_FIND_DATA) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function
Tags What's this?: Add a tag
Flag as ContentBug
C# syntax      dmex   |   Edit   |   Show History
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)]
internal static extern bool FindNextFile([In] SafeFileHandle hFindFile, out WIN32_FIND_DATA lpFindFileData);
Tags What's this?: Add a tag
Flag as ContentBug
WIN32_FIND_DATA to be used in subsequent calls?      Anthony_P   |   Edit   |   Show History
The article states:
"The structure can be used in subsequent calls to FindNextFile to indicate from which file to continue the search."

How is this possible? There is no mention of the function reading from lpFindFileData, and the parameter is marked [out].
Tags What's this?: Add a tag
Flag as ContentBug
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker