linux

linux readdir怎样获取文件属性

小樊
82
2024-12-29 09:33:21
栏目: 智能运维

在Linux中,readdir()函数用于从目录中读取条目

#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>

int main() {
    DIR *dir;
    struct dirent *entry;
    struct stat fileStat;

    // 打开目录
    dir = opendir("directory_path");
    if (dir == NULL) {
        perror("Error opening directory");
        exit(EXIT_FAILURE);
    }

    // 遍历目录中的每个条目
    while ((entry = readdir(dir)) != NULL) {
        // 获取文件属性
        lstat(entry->d_name, &fileStat);

        // 输出文件属性
        printf("File: %s\n", entry->d_name);
        printf("Size: %ld bytes\n", (long)fileStat.st_size);
        printf("Type: %s\n", (S_ISDIR(fileStat.st_mode)) ? "Directory" : "File");
        printf("Permissions: %s\n", ctime(&fileStat.st_mtime));
        printf("\n");
    }

    // 关闭目录
    closedir(dir);
    return 0;
}

在这个示例中,我们首先使用opendir()函数打开一个目录。然后,我们使用readdir()函数遍历目录中的每个条目。对于每个条目,我们使用lstat()函数获取文件属性,并将其存储在fileStat结构中。最后,我们输出文件的名称、大小、类型(目录或文件)和权限。

请注意,您需要将directory_path替换为您要读取的目录的实际路径。

0
看了该问题的人还看了