void FindFile(LPTSTR strPath) //strPath="C:\\a\\"
{
TCHAR strRoot[MAX_PATH];
TCHAR strSearchFile[MAX_PATH];
TCHAR strOut[MAX_PATH];
WIN32_FIND_DATA fData;
ZeroMemory(strRoot, sizeof(strRoot));
ZeroMemory(strSearchFile, sizeof(strSearchFile));
ZeroMemory(strOut, sizeof(strOut));
ZeroMemory(&fData, sizeof(WIN32_FIND_DATA));
lstrcpy(strSearchFile, strPath);
lstrcat(strSearchFile, _T("*.*"));
HANDLE hFile = FindFirstFile(strSearchFile, &fData);
if(hFile == INVALID_HANDLE_VALUE)
return;
do
{
if(fData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
&& lstrcmp(fData.cFileName, _T("."))
&& lstrcmp(fData.cFileName, _T(".."))) //Windows下有2个默认目录"."和".."
{
lstrcpy(strRoot, strPath);
lstrcat(strRoot, fData.cFileName);
lstrcat(strRoot, _T("\\"));
FindFile(strRoot);
}
else
{
if(lstrcmp(fData.cFileName, _T("."))
&& lstrcmp(fData.cFileName, _T("..")))
{
lstrcpy(strOut, strPath);
lstrcat(strOut, fData.cFileName);
ListBox_AddString(m_hWnd, strOut); //输出文件名到ListBox
ZeroMemory(strOut, sizeof(strOut));
}
}
}while(FindNextFile(hFile, &fData) != 0);
FindClose(hFile);
return ;
}
以上代码只是简单实现了遍历目录下的文件。给自己留个记号。以后说不定要用到!