C++获取文件夹名时,为什么与“.”和“..”比较?
#include <iostream>
#include <vector>
#include <string.h>
#include <io.h>
using namespace std;
void getFiles(string path, vector<string>& files,string file_type)
{
long hFile =0;
struct _finddata32_t fileInfo;
string p;
if((hFile = _findfirst(p.assign(path).append(file_type).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,file_type);
}
else
{
files.push_back(fileInfo.name);
}
}while(_findnext(hFile,&fileInfo)==0);
}
_findclose(hFile);
}
int main()
{
string path = "E:\\result";
vector<string> files;
string file_type="\\*.ply";
getFiles(path,files,file_type);
cout<<files.size()<<endl;
for(int i=0;i<files.size();i++)
cout<<files[i]<<endl;
return 0;
}