以下是一个简单的示例,演示如何使用 CFileFind::FindFile 方法来初始化文件查找:
#include <afx.h>
void FindFilesInDirectory(const CString& directory)
{
CFileFind finder;
// 构造函数初始化,设置初始查找路径
BOOL bWorking = finder.FindFile(directory + _T("\\*.*"));
if (bWorking)
{
// 查找成功,继续处理找到的文件或目录
while (bWorking)
{
bWorking = finder.FindNextFile(); // 查找下一个文件
if (finder.IsDots())
continue; // 忽略 "." 和 ".."
if (finder.IsDirectory())
{
// 处理子目录
// finder.GetFileName() 可以获取当前找到的目录名
// 递归调用 FindFilesInDirectory() 可以继续在子目录中查找文件
// ...
}
else
{
// 处理文件
// finder.GetFileName() 可以获取当前找到的文件名
// ...
}
}
finder.Close(); // 关闭文件查找
}
else
{
// 查找失败,可能目录不存在或其他错误
// 处理错误情况
}
}
在上述示例中,finder.FindFile(directory + _T("\\*.*")) 用于启动文件查找过程,并指定了要查找的目录以及文件名的模式。如果查找成功,可以通过循环调用 finder.FindNextFile() 来逐个获取目录下的文件和子目录的信息。
需要注意的是,在使用 CFileFind 进行文件查找时,应该始终检查 FindFile 方法的返回值,以确保查找操作成功启动。如果 FindFile 返回 TRUE,则表示成功启动查找操作;如果返回 FALSE,则可能是由于目录不存在或其他错误导致的查找失败。
转载请注明出处:http://www.pingtaimeng.com/article/detail/17778/MFC/CFileFind