void listDir(char *dirpath){DIR *dir = opendir((const char*)dirpath);if(dir == NULL){printf("open the log directory <%s> failure\n",dirpath);return ;}struct dirent *dirp = NULL;while((dirp = readdir(dir)) != NULL){if(dirp->d_type & DT_DIR){printf("dirpath = %s\n",dirpath);if(dirp->d_name == NULL || dirp->d_name[0] == '.' || strcmp(dirp->d_name,"..") == 0)continue;sprintf(m_chTempPath,"%s%s/",dirpath,dirp->d_name);listDir(m_chTempPath);}else if(dirp->d_type & DT_REG){sprintf(m_chTemp,"%s%s",m_chTempPath,dirp->d_name);printf("m_chTemp = %s\n",m_chTemp);} elsecontinue;}closedir(dir);}代碼如上,目錄結(jié)構(gòu)如下:/root/shanghai/jingan/xiaoming.txt /root/nanjing/xuanwu/tom.txt/root/shanghai/changning/xiaohong.txt /root/nanjing/hexi/jack.txt/root/shanghai/putuoxiaoli.txt /root/nanjing/baixia/may.txt當(dāng)我執(zhí)行程序時(shí),讀目錄結(jié)構(gòu)會(huì)出錯(cuò),比如會(huì)讀成 /root/shanghai/jingan/changning,而jingan和changning是并列的兩個(gè)目錄,這種錯(cuò)誤該怎么改,急等大大們?cè)诰€幫解決
想了解一下,在C/C++中的readdir遍歷目錄中的子目錄的問(wèn)題?
哆啦的時(shí)光機(jī)
2021-06-22 18:14:24