[New - Windows NT]
FindFirstFileEx函数在目录中搜索名称和属性与函数调用中指定的名称和属性相匹配的文件。
HANDLE FindFirstFileEx(
LPCTSTR 【lpFileName】, | //指向要搜索的文件的名称 |
FINDEX_INFO_LEVELS 【fInfoLevelId】, | //返回数据的信息级别 |
LPVOID 【lpFindFileData】, | //指向返回信息的指针 |
FINDEX_SEARCH_OPS 【fSearchOp】, | //要执行的过滤类型 |
LPVOID 【lpSearchFilter】, | //指向搜索条件的指针 |
DWORD 【dwAdditionalFlags】 | //其他搜索控制标志 |
); |
参数
【lpFileName】
指向一个空值终止的字符串,指定一个有效的目录或路径和文件名,可以包含通配符(*和?)。
【fInfoLevelId】
指定返回数据的信息级别。如果使用FindExInfoStandard常量,则【lpFindFileData】指针是FindFirstFile使用的标准WIN32_FIND_DATA结构。此时,不支持其他信息级别。
【lpFindFileData】
指向文件数据。指针类型由【fInfoLevelId】参数中指定的信息级决定。
【fSearchOp】
指定执行超级通配符匹配的过滤类型。有关详细信息,请参阅本主题后面的备注部分。
【lpSearchFilter】
如果指定的【fSearchOp】需要结构化搜索信息,【lpSearchFilter】指向搜索条件。目前,所有支持的【fSearchOp】值都不需要扩展搜索信息。因此,该指针必须为NULL。
【dwAdditionalFlags】
指定用于控制搜索的附加标志。您可以使用FIND_FIRST_EX_CASE_SENSITIVE标志来区分大小写的搜索。默认搜索不区分大小写。此时,没有其他标志被定义。
回报值
如果函数成功,则返回值是可以在随后调用FindNextFile或FindClose 函数中使用的搜索句柄。
如果函数失败,返回值为INVALID_HANDLE_VALUE。要获取扩展错误信息,请调用GetLastError.
备注
提供FindFirstFileEx功能来打开搜索句柄并返回有关其名称与指定模式和属性匹配的第一个文件的信息。
附加过滤的方式取决于【fSearchOp】的值。【fSearchOp】参数可以是以下值之一:
值 | 含义 |
FindExSearchNameMatch | 搜索与指定文件名匹配的文件。请注意,当使用此搜索操作时,【lpSearchFilter】必须为NULL。 |
FindExSearchLimitToDevices | 只返回设备名称。通常可以通过\\\\。{<名称>约定访问设备名称。当使用此搜索操作时,【dwAdditionalFlags】参数不能为FIND_FIRST_EX_CASE_SENSITIVE。 |
FindExSearchLimitToDirectories | 这是一个咨询标志。 如果文件系统支持目录过滤,则该函数将搜索与指定文件名匹配的“文件”,这是一个目录。 如果文件系统不支持目录过滤,则该标志将被忽略。 使用此搜索操作时,【lpSearchFilter】参数必须为NULL。 如果要进行目录筛选,请在所有文件系统上使用此标志,但请务必检查存储在* 【lpFindFileData】中的文件属性数据,以确定该函数是否确实返回到目录的句柄。 |
如果底层文件系统不支持特定类型的过滤,除了目录过滤,FindFirstFileEx失败,错误为ERROR_NOT_SUPPORTED。应用程序必须使用类型FileExSearchNameMatch并执行自己的过滤。
一旦建立,搜索句柄可以在FindNextFile函数中使用,以搜索与执行相同过滤功能相同的模式的其他文件。当不再需要搜索句柄时,应使用FindClose函数关闭搜索句柄。
电话
FindFirstFileEx(lpFileName,
FindExInfoStandard,
lpFindData,
FindExSearchNameMatch,
NULL,
0 );
相当于通话
FindFirstFile( lpFileName, lpFindData);
也可以看看