结果如下:
同理,只读取某给定路径下的当前文件夹名(以下类似,只给出函数,调用案例同上):
1 void getJustCurrentDir( string path, vector<string>& files) 2 { 3 //文件句柄 4 long hFile = 0; 5 //文件信息 6 struct _finddata_t fileinfo; 7 string p; 8 if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) 9 { 10 do 11 { 12 if((fileinfo.attrib & _A_SUBDIR)) 13 { 14 if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) 15 { 16 files.push_back(fileinfo.name); 17 //files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); 18 } 19 20 } 21 }while(_findnext(hFile, &fileinfo) == 0); 22 _findclose(hFile); 23 } 24 } |
只读取某给定路径下的当前文件名:
1 void getJustCurrentFile( string path, vector<string>& files) 2 { 3 //文件句柄 4 long hFile = 0; 5 //文件信息 6 struct _finddata_t fileinfo; 7 string p; 8 if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) 9 { 10 do 11 { 12 if((fileinfo.attrib & _A_SUBDIR)) 13 { 14 ; 15 } 16 else 17 { 18 files.push_back(fileinfo.name); 19 //files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); 20 } 21 }while(_findnext(hFile, &fileinfo) == 0); 22 _findclose(hFile); 23 } 24 } |
只读取某给定路径下的所有文件名(即包含当前目录及子目录的文件):
1 void getFilesAll( string path, vector<string>& files) 2 { 3 //文件句柄 4 long hFile = 0; 5 //文件信息 6 struct _finddata_t fileinfo; 7 string p; 8 if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) 9 { 10 do 11 { 12 if((fileinfo.attrib & _A_SUBDIR)) 13 { 14 if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) 15 { 16 //files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); 17 getFilesA( p.assign(path).append("\\").append(fileinfo.name), files ); 18 } 19 } 20 else 21 { 22 files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); 23 } 24 }while(_findnext(hFile, &fileinfo) == 0); 25 _findclose(hFile); 26 } 27 } |
至此,简单的读取功能就实现了,以后只要指定路径,就能轻松地得到对应的路径与文件名称。