windows下C++实现遍历本地文件
1.假设本地 d:/ 下存放着0.txt,1.txt两个文件
2.开发工具VS,开发语言C++,怎么遍历得到两个文件呢?
废话不多,具体代码请看下面:
/**
* 入参:文件存放文件夹路径,例如D:\\
* 出参:每个文件绝对路径数组
**/
vector<CString> MyFile::listFiles(const char* dir)
{
HANDLE h; //文件句柄
WIN32_FIND_DATA findData; //查找到的文件信息结构
char dirTmp[200];
strcpy(dirTmp,dir);
strcat(dirTmp,"*.*"); //使用通配符,和传入参数组成一个待遍历的路径
vector<CString> fileList; //此处用string就会使存入值变为乱码,所以用CString
h = FindFirstFileA(dirTmp,&findData); //开始遍历
do{
if(findData.dwFileAttributes&_A_SUBDIR || findData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY || strcmp(findData.cFileName,".") == 0 || strcmp(findData.cFileName,"..") == 0)
{
//log(INFO,"是目录,目录名:%s",findData.cFileName);
}
else
{
FILE *fp;
strcpy(dirTmp,dir);
strcat(dirTmp,findData.cFileName); //将找到的文件名和传入路径组成一个绝对路径
fileList.push_back(dirTmp); //绝对路径存入vector(其实就是一个数组)
}
}while(FindNextFileA(h,&findData));
FindClose(h);
return fileList;
}