gpt4 book ai didi

c++ - 我如何让 readdir 忽略 C/C++ 中的目录?

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:44 25 4
gpt4 key购买 nike

我正在使用 readdir 读取当前库的内容,但我只想处理文件而不是目录。我怎么知道我指向的是目录而不是文件?

最佳答案

您可以使用 lstat , 和 S_ISDIR宏。

例如没有错误检查:

struct stat buffer;
int status;
char path[PATH_MAX];
DIR *dir = opendir(dir_name);
...
struct dirent *de = readdir(dir);
sprintf(path, "%s/%s", dir_name, de->d_name);
status = lstat(path, &buffer);
if(S_ISDIR(buffer.st_mode))
{
...
}

编辑:已修复以在 lstat 路径中包含目录(根据 el.pescado)。正如 R Samuel Klatchko 所指出的,您可能希望采用白名单方法 (S_ISREG),而不是在类型出现时将其列入黑名单。

关于c++ - 我如何让 readdir 忽略 C/C++ 中的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com