#include "stdio.h"
#include "windows.h"
#include "winbase.h"
void FindFileInDir(char* rootDir);
int main()
{
FindFileInDir("D:\\"); //自己改路径
return 0;
}
void FindFileInDir(char* rootDir)
{
WIN32_FIND_DATA fd;
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
HANDLE hSearch; //搜索句柄
char filePathName[256]; //搜索的起始文件名
ZeroMemory(filePathName, 256);
strcpy(filePathName, rootDir);
BOOL bSearchFinished = FALSE;
if( filePathName[strlen(filePathName) -1] != '\\' )//如果传过来的路径名不完整,如d: 则自动变为d:\\
{
strcat(filePathName, "\\"); //strcat字符串追加
}
strcat(filePathName, "*"); //字符串追加,当前为d:\\*
hSearch = FindFirstFile(filePathName, &fd); //第一次搜索
printf("%s%s\n",rootDir,fd.cFileName);//显示路径+文件名
//如果不是目录
while( !bSearchFinished )
{
if( FindNextFile(hSearch, &fd) ) //搜下一个文件
{
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) //如果是目录
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
//什么也不做
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )//如果是一个文件
{
printf("%s%s\n",rootDir,fd.cFileName);//显示路径+文件名
}
}
else
{
if( GetLastError() == ERROR_NO_MORE_FILES ) //没有文件
{
bSearchFinished = TRUE;
}
else
bSearchFinished = TRUE;
}
}
FindClose(hSearch);
}
来自 [萝岗九龙社区] http://www.gzzsc.net