studentsDir = opendir(lineValues);
while ((entry = readdir(studentsDir)) != NULL) {
stat(path, &dirData);
if (S_ISDIR(dirData.st_mode) && (entry->d_name[0] != '.')
&& (entry->d_name[1] != '.')) {
我在目录中搜索文件夹。问题是stat返回大多数文件夹的空值dirdata
答案 0 :(得分:0)
代码需要:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
该功能的原型是:
int stat(const char *path, struct stat *buf);
所以你还需要:
struct stat dirData;
并且* path变量需要是文件名的实际路径(可以是相对的或绝对的)到目标文件。
发布的代码中没有任何内容表明代码中已包含上述任何内容。
和&#39;条目&#39;是指向&#39; struct dirent&#39;当前文件/目录名称需要附加到&#39;路径&#39;在stat()使用它之前。
&#39;条目&#39;需要检查以确保在使用它之前它不是NULL。
struct dirent包含将包含的d_name [256]字段 当前文件(或目录)的名称(但不是整个路径) 所以每次代码进入(子)目录, (发布的代码没有做) 那么路径需要有来自d_name []的字符串 附加到路径字符串