ディレクトリ内のすべてのファイルをトラバースします

  ディレクトリの下にあるすべてのファイル情報をトラバースすると、ディレクトリにサブディレクトリが含まれる場合があります。ディレクトリがまだ開いている場合は、このサブディレクトリを再度開く必要があります。したがって、これは再帰を使用する必要があります。実際、トラバースするレイヤーが複数あるため、多くのトラバーサルでは再帰を使用する必要があります。

int ReadDir(const char * strpathname){ while(1){ if((stdinfo = readdir(dir))== 0)break;


    if(strncmp(stdinfo->d_name,".",1)==0)  continue;  //以.开始的文件不读,这是隐藏文件
  
    if(stdinfo->d_type==8)  //如果是文件,显示出来
      printf("name=%s/%s\n",strpathname,stdinfo->d_name);

    if(stdinfo->d_type==4)
      {
         sprintf(strchdpath,"%s/%s",strpathname,stdinfo->d_name);
         ReadDir(strchdpath);
      }
}

}
  タイプ4は、このサブディレクトリのフルパスがトラバーサル関数に渡さなければならないディレクトリです。

int ReadDir(const char * strpathname)
{ ReadDir(strchdpath);これは再帰です}

再帰はトラバーサルクラスでよく使用されることを思い出してください。

おすすめ

転載: blog.csdn.net/qq_43403759/article/details/113107267