深圳夜场网站建设托管,张东敏 上海 科技 网站建设,e龙岩公共服务网,网站侧边菜单有时候我们会获取文件夹下所有文件的路径以及完成的名称,这时候如果有一个函数库轻松帮我得到数据就好了,还真有. cpp
void getFiles(const std::string path, std::vectorstd::string files)
{ //文件句柄 long hFile 0; //文件信息#xff0c;_fi…有时候我们会获取文件夹下所有文件的路径以及完成的名称,这时候如果有一个函数库轻松帮我得到数据就好了,还真有. cpp
void getFiles(const std::string path, std::vectorstd::string files)
{ //文件句柄 long hFile 0; //文件信息_finddata_t需要io.h头文件 struct _finddata_t fileinfo; std::string p; if((hFile _findfirst(p.assign(path).append(\\*).c_str(),fileinfo)) ! -1) { do { if((fileinfo.attrib _A_SUBDIR)) { if(strcmp(fileinfo.name,.) ! 0 strcmp(fileinfo.name,..) ! 0) getFiles(p.assign(path).append(\\).append(fileinfo.name), files); }else { CString szFileName( fileinfo.name);//szFileName.Format(_T(%s), fileinfo.name);;CString szFileExt szFileName.Mid(szFileName.Find(_T(.))1);//判断文件后缀if (_T(bmp) ! szFileExt.MakeLower() _T(jpg) ! szFileExt.MakeLower()_T(jpeg) ! szFileExt.MakeLower() _T(png) ! szFileExt.MakeLower()_T(tiff) ! szFileExt.MakeLower())continue;files.push_back(p.assign(path).append(\\).append(fileinfo.name)); } } while (_findnext(hFile, fileinfo) 0); _findclose(hFile); }
}这时我们需要一个结构体_finddata_t,把文件路径文件名完整的保存下来,方便用的时候直接拿出来.
struct _finddata_t { unsigned attrib; time_t time_create; time_t time_access; time_t time_write; _fsize_t size; char name[_MAX_FNAME]; }; attrib属性包括这些类型 _A_ARCH存档 _A_HIDDEN隐藏 _A_NORMAL正常 _A_RDONLY只读 _A_SUBDIR文件夹 _A_SYSTEM系统 time_create 文件创建时间,time_access文件最后一次访问时间,time_write文件最后一次修改时间,size文件大小,name文件最大长度.