如何让 readdir 忽略 C/C++ 中的目录?
我正在使用 readdir 读取当前库的内容,但我只想处理文件而不是目录。我如何知道我指向的是目录而不是文件?
I am reading the content of the current library with readdir
, but I would like to treat only files and not directories. How do I know that I am pointing to a directory and not to a file?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 lstat 和 S_ISDIR 宏。
例如,没有错误检查:
编辑:修复为在 lstat 路径中包含目录(根据 el.pescado)。正如 R Samuel Klatchko 所指出的,您可能希望采用白名单方法 (S_ISREG),而不是在出现类型时将其列入黑名单。
You can use lstat, and the S_ISDIR macro.
E.g. without error-checking:
EDIT: Fixed to include directory in lstat path (per el.pescado). As noted by R Samuel Klatchko, you may want to take a whitelist approach (S_ISREG) instead of blacklisting types as they come up.