// 这里的目录不包含"/"
void TravelDir(char* pszDirName)
{
HANDLE hFind;
WIN32_FIND_DATAA findfileData;
char szDirSpec[MAX_PATH];
sprintf(szDirSpec, "%s//*", pszDirName);
cout<<"Current Director"<<szDirSpec<<endl;
hFind = ::FindFirstFileA(szDirSpec, &findfileData);
if (hFind == INVALID_HANDLE_VALUE)
{
cout<<"error: "<<GetLastError()<<endl;
return;
}
while (::FindNextFileA(hFind, &findfileData) != 0)
{
// 文件
if (findfileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY &&
strcmp( findfileData.cFileName,"thumbs.db")) // 图片预览的缓冲文件, 我这里不需要
cout<<"Next file name is "<< findfileData.cFileName << endl;
// 目录
else if(strcmp( findfileData.cFileName,".") && strcmp(findfileData.cFileName, ".."))
{
cout<<"Next dir name is " << findfileData.cFileName << endl;
char szDirSpecNext[MAX_PATH];
sprintf(szDirSpecNext, "%s//%s", pszDirName, findfileData.cFileName);
TravelDir(szDirSpecNext);
}
}
FindClose(hFind);
}