vector<string> str = GameTools::splitString(path,"/");
string strpath="";
for (int i=0;i<str.size()-1;i++)
{
strpath+=str[i]+"/";
}
CCLOG("****%s",path.c_str());
CCLOG("~~~~%s",strpath.c_str());
dfsFolder(strpath ,0);
void LodingScene::dfsFolder(string folderPath,int depth)
{
#ifdef WIN32
_finddata_t FileInfo;
string strfind = folderPath + "\\*";
long Handle = _findfirst(strfind.c_str(), &FileInfo);
if (Handle == -1L)
{
cerr << "can not match the folder path" << endl;
exit(-1);
}
do{
//判断是否有子目录
if (FileInfo.attrib & _A_SUBDIR)
{
//这个语句很重要
if( (strcmp(FileInfo.name,".") != 0 ) &&(strcmp(FileInfo.name,"..") != 0))
{
string newPath = folderPath + "\\" + FileInfo.name;
dfsFolder(newPath);
}
}
else
{
string filename = (folderPath + "\\" + FileInfo.name);
//cout << folderPath << "\\" << FileInfo.name << " " << endl;
CCLOG("%s",FileInfo.name);
}
}while (_findnext(Handle, &FileInfo) == 0);
_findclose(Handle);
#else
CCLOG("124");
DIR *dp;
struct dirent *entry;
struct stat statbuf;
if((dp = opendir(folderPath.c_str())) == NULL) {
fprintf(stderr,"cannot open directory: %s\n", folderPath.c_str());
CCLOG("129--%s",folderPath.c_str());
return;
}
chdir(folderPath.c_str());
while((entry = readdir(dp)) != NULL) {
lstat(entry->d_name,&statbuf);
if(S_ISDIR(statbuf.st_mode)) {
if(strcmp(".",entry->d_name) == 0 ||
strcmp("..",entry->d_name) == 0)
continue;
printf("%*s%s/\n",depth,"",entry->d_name);
dfsFolder(entry->d_name,depth+4);
} else {
string filename = entry->d_name;
printf("%*s%s\n",depth,"",entry->d_name);
CCLOG("146---%s",filename.c_str());
}
}
chdir("..");
closedir(dp);
#endif
}