Something went wrong. Try again.
Reactos
Something went wrong. Try again.
C
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243//// EnumDirs.cpp//
#include "EnumDirs.h"#include <stdio.h>
#if defined(UNDER_CE) && !defined(assert)#define assert(x)#endif
BOOL EnumDirs ( const TCHAR* szDirectory_, const TCHAR* szFileSpec, MYENUMDIRSPROC pProc, long lParam ){ assert ( szDirectory_ && szFileSpec && pProc ); TCHAR szDirectory[MAX_PATH+1]; TCHAR szSearchPath[MAX_PATH+1]; TCHAR szTemp[MAX_PATH+1]; _tcscpy ( szDirectory, szDirectory_ ); if ( szDirectory[_tcslen(szDirectory)-1] != '\\' ) _tcscat ( szDirectory, _T("\\") ); _sntprintf ( szSearchPath, _MAX_PATH, _T("%s%s"), szDirectory, szFileSpec ); WIN32_FIND_DATA wfd; HANDLE hfind = FindFirstFile ( szSearchPath, &wfd ); if ( hfind == INVALID_HANDLE_VALUE ) return TRUE; do { if ( !_tcscmp ( wfd.cFileName, _T(".") ) || !_tcscmp ( wfd.cFileName, _T("..") ) ) continue; _sntprintf ( szTemp, _MAX_PATH, _T("%s%s"), szDirectory, wfd.cFileName ); if ( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) { if ( !pProc ( &wfd, lParam ) ) { FindClose ( hfind ); return FALSE; } } } while ( FindNextFile ( hfind, &wfd ) ); FindClose ( hfind ); return TRUE;}