フォルダ列挙(再帰)

// フォルダ列挙

typedef bool (*FILEENUMPROC)(LPCTSTR, LPWIN32_FIND_DATA, void*);

bool procFolders(LPCTSTR dir, FILEENUMPROC proc, void* param)
{
CString search;
search.Format(_T("%s\\*"), dir);

WIN32_FIND_DATA data;

HANDLE hFile = ::FindFirstFile(search, &data);
if(hFile == INVALID_HANDLE_VALUE) return false;

do{
if(lstrcmp(data.cFileName, _T(".") ) == 0) continue;
if(lstrcmp(data.cFileName, _T("..")) == 0) continue;

if(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(!(*proc)(dir, &data, param)) return false;
}

}while(::FindNextFile(hFile, &data));

::FindClose(hFile);

return true;
}
最終更新:2012年02月15日 14:06
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。