【发布时间】:2015-07-15 21:04:00
【问题描述】:
我正在使用if(strstr(dir->d_name, ".") == NULL && strstr(dir->d_name, "..")来检查它是否是目录/子目录,但这仍然会打印出一些不是目录的文件...我使用的是直接结构和 DIR。
【问题讨论】:
-
你能显示更多代码吗?
-
取决于操作系统,如果您阅读the
readdirmanual page,您会看到它有一个名为d_type的成员,这是目录条目的“文件”类型。 -
当不使用
readdir()等时,或者当您的系统仅提供来自<dirent.h>的struct dirent的POSIX 规范定义的最少信息(即d_name和d_ino)。更适应的系统可能会在扩展信息中提供文件类型,直接存储在struct dirent结构中。
标签: c directory directory-structure