C语言如何获取当前工作目录下文件的详细信息?

How to get the details of the files in the current working directory in C?

我试图在 C 中显示我当前工作目录的文件,但是,我还需要包括这些文件的详细信息,例如创建日期和文件大小。

C 语言中是否有执行此操作的函数?

到目前为止,这是我的代码:

int main(
    DIR *d;
    struct dirent *dir;
    d = opendir(".");
    if (d) {
        while ((dir = readdir(d)) != NULL) {
            printf("%s\n", dir->d_name);
        }
        closedir(d);
    }
}

文件信息不是由 dirent 函数处理的,而是由 stat().

注意stat()需要路径名;将目录路径与 dirent 结构中的文件名相结合(使用 strncat)将为您提供必要的参数。在这种特殊情况下,由于文件信息只需要当前工作目录中的文件,路径可以省略,文件名可以直接用作参数(stat() 将在目录中查找文件当前目录)。

stat 结构有您感兴趣的各种条目,例如文件大小的 st_size 和更改时间的 st_ctime(注意后者是 UNIX time,它您可能希望转换为可读的字符串)。