CFileFind::FindFile
virtual BOOL FindFile( LPCTSTR pstrName = NULL, DWORD dwUnused = 0 );
参数
pstrName 以一个包含该文件的名称来找到指针。如果你传递pstrName空,FindFile (*.*)做了通配符搜索。 dwUnused 保留作出FindFile多态性与派生类。必须为0 返回值 非零如果成功,否则为0。为了获得更多的错误信息,调用Win32函数GetLastError函数 备注 在调用FindFile开始搜索该文件,调用FindNextFile检索后续文件。您必须调用至少一次,然后再调用下面的属性成员函数任何FindNextFile:
#include <afxwin.h> #include <iostream>
using namespace std;
void Recurse(LPCTSTR pstr) { CFileFind finder;
// build a string with wildcards CString strWildcard(pstr); strWildcard += _T("//*.*");
// start working for files BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking) { bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd // recur infinitely!
if (finder.IsDots()) continue;
// if it's a directory, recursively search it
if (finder.IsDirectory()) { CString str = finder.GetFilePath(); cout << (LPCTSTR) str << endl; Recurse(str); } }
finder.Close(); }
void main() { if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0)) cout << "panic!" << endl; else Recurse(_T("C:")); }