递归搜索文件目录中的所有文件(vc)
2017-12-26 11:29
309 查看
李国帅 于2009-07-08
void FindFileInDir(char* rootDir, char* strRet) { char fname[MAC_FILENAMELENOPATH]; ZeroMemory(fname, MAC_FILENAMELENOPATH); WIN32_FIND_DATA fd; ZeroMemory(&fd, sizeof(WIN32_FIND_DATA)); HANDLE hSearch; char filePathName[256]; char tmpPath[256]; ZeroMemory(filePathName, 256); ZeroMemory(tmpPath, 256); strcpy(filePathName, rootDir); BOOL bSearchFinished = FALSE; if (filePathName[strlen(filePathName) - 1] != '\\') { strcat(filePathName, "\\"); } strcat(filePathName, "*"); 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); } 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 = TRUE; //Terminate Search } } FindClose(hSearch); }
相关文章推荐
- 用嵌套递归的方法搜索指定目录下的所有文件
- VC/MFC 下 递归遍历目录下的所有子目录及文件
- 递归搜索所有文件目录
- 递归搜索给定的目录下所有的文件
- java递归删除目录下所有文件包括目录
- 对指定的目录进行递归获取递归过程所有的java文件的路径。
- 递归修改当前目录下所有文件/文件夹3个时间戳
- File::Find 递归搜索文件目录结构
- 搜索指定目录下的所有文件或者指定文件(可用于多级目录)
- PHP获取指定目录下的所有文件,递归到子文件夹
- 递归获取目录下的所有文件
- vc创建选择目录对话框以及遍历目录下所有文件
- 用CfileFind递归搜索目录——文件、工程管理
- UE4 C++实现搜索指定目录下的指定类型的所有文件
- 在linux下用C语言实现递归查看某个目录中的所有文件
- java递归读取目录下所有文件的方法
- asp.net 删除文件夹,指定文件夹,删除文件夹和所有文件,删除权限设置,递归删除文件夹目录及文件
- (实用篇)PHP不用递归遍历目录下所有文件的代码
- VC中删除一个目录下的所有文件
- 运用递归 取某个目录下的所有子目录及文件