您的位置:首页 > 其它

遍历指定文件夹下的所有文件(包括子文件夹下)

2009-01-06 11:17 603 查看
int FindFileInDir(char* rootDir, char* strRet)

{

char fname[512];

ZeroMemory(fname,512);

WIN32_FIND_DATA fd;

ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));

char filePathName[256];

char tmpPath[256];

ZeroMemory(filePathName, 256);

ZeroMemory(tmpPath, 256);

strcpy(filePathName, rootDir);

if( filePathName[strlen(filePathName) -1] != '\\')

{

strcat(filePathName, "\\");

}

strcat(filePathName, "*");

HANDLE hSearch;

hSearch = FindFirstFile(filePathName, &fd);

//Is directory

if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))

{

strcpy(tmpPath, rootDir);

strcat(tmpPath, fd.cFileName);

FindFileInDir(tmpPath, strRet);

}

else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))

{

sprintf(fname, "%-50.50s", fd.cFileName);

strcat(strRet + strRet[strlen(strRet)] , fname);

}

BOOL bSearchFinished = FALSE;

while( !bSearchFinished )

{

if( FindNextFile(hSearch, &fd))

{

if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))

{

strcpy(tmpPath, rootDir);

strcat(tmpPath, fd.cFileName);

FindFileInDir(tmpPath, strRet);

}

else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))

{

sprintf(fname, "%-50.50s", fd.cFileName);

strcat(strRet + strRet[strlen(strRet)] , fname);

}

}

else

{

if( GetLastError() == ERROR_NO_MORE_FILES ) //Normal Finished

{

bSearchFinished = TRUE;

}

else

bSearchFinished = FALSE; //Terminate Search

}

}

FindClose(hSearch);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐