本例以當前程序所在文件夾爲例,匹配其下所有文件。
#include <stdio.h>
#include <afx.h>
void main()
{
//獲取該程序全路徑
TCHAR exeFullPath[MAX_PATH];
GetModuleFileName(NULL,exeFullPath,MAX_PATH);
printf("%s\n",exeFullPath);
//提取文件夾
char * pdest = strrchr( exeFullPath, '\\' );
int iPos = pdest - exeFullPath + 1;
char szCurPath[MAX_PATH];
memset(szCurPath,0,MAX_PATH);
strncpy(szCurPath,exeFullPath,iPos);
printf("%s\n",szCurPath);
CString strFileToFind;
strFileToFind.Format("%s*.*",szCurPath); //此處匹配該文件夾所有文件
CFileFind finder;
BOOL bWorking = finder.FindFile(strFileToFind);
while(bWorking)
{
bWorking = finder.FindNextFile();
if(!finder.GetFileName().Compare(".") || !finder.GetFileName().Compare(".."))
continue;
printf("%s\n",finder.GetFilePath());//此處可以用CStringArray來接收如:CStringArray strFileNameAr; strFileNameArr.Add(finder.GetFilePath());
}
finder.Close();
getchar();
}