#include <windows.h>
#include <vector>
using namespace std;
vector<string> vcFileList;
BOOL GetFileList(TCHAR *pszFilePath)
{
char szPath[MAX_PATH] = {0};
char szFilePath[MAX_PATH] = {0};
strcpy_s(szFilePath,MAX_PATH,pszFilePath);
sprintf_s(szPath,MAX_PATH,"%s\\*.*",pszFilePath);
WIN32_FIND_DATA FileData;
memset(&FileData, 0, sizeof(FileData));
HANDLE m_hSearch = FindFirstFile(szPath,&FileData);
if(m_hSearch != INVALID_HANDLE_VALUE)
{
while (TRUE)
{
if (FileData.dwFileAttributes &FILE_ATTRIBUTE_DIRECTORY)
{
if ( !strcmp(FileData.cFileName,".") || !strcmp(FileData.cFileName,".."))
{
}
else
{
char szStrPath[MAX_PATH] = {0};
sprintf_s(szStrPath,MAX_PATH,"%s\\%s",szFilePath,FileData.cFileName);
GetFileList(szStrPath);
}
}
else
{
vcFileList.push_back(FileData.cFileName);
}
if(!FindNextFile(m_hSearch,&FileData))
{
break;
}
}
}
else
{
return FALSE;
}
}
BOOL GetFirstFileName(char * pszStr,int nLen)
{
if(pszStr == NULL)
return FALSE;
if (vcFileList.empty())
return FALSE;
if (nLen < vcFileList[0].size())
return FALSE;
strcpy_s(pszStr,nLen,vcFileList[0].c_str()) ;
vcFileList.erase(vcFileList.begin());
return TRUE;
}
void main()
{
GetFileList("C:\\Temp");
char *p =new char[200];
while(GetFirstFileName(p,200))
{
printf(p);
printf("\r\n");
}
int a=1;
}