を使用して、ディレクトリ UROP に含まれるすべてのファイルを一覧表示しようとしていますstat()
。ただし、ディレクトリにはファイルだけでなく、検索したいフォルダーも含まれています。したがって、再帰を使用して、ファイルを一覧表示するフォルダーにアクセスしています。
ただし、if
ループ内の条件では、ファイルとディレクトリを区別できず、すべてのファイルがディレクトリとして表示されます。結果は無限再帰 コードは次のとおりです。前もって感謝します!
using namespace std;
bool analysis(const char dirn[],ofstream& outfile)
{
cout<<"New analysis;"<<endl;
struct stat s;
struct dirent *drnt = NULL;
DIR *dir=NULL;
dir=opendir(dirn);
while(drnt = readdir(dir)){
stat(drnt->d_name,&s);
if(s.st_mode&S_IFDIR){
if(analysis(drnt->d_name,outfile))
{
cout<<"Entered directory;"<<endl;
}
}
if(s.st_mode&S_IFREG){
cout<<"entered condition;"<<endl;
cout<<drnt->d_name<<endl;
}
}
return 1;
}