linux

如何用copendir统计目录下文件数量

小樊
36
2025-06-16 00:16:19
栏目: 编程语言

要使用 opendir 函数来统计一个目录下的文件数量,你可以按照以下步骤进行:

  1. 打开目录。
  2. 读取目录中的每个条目。
  3. 判断每个条目是否是文件。
  4. 统计文件的个数。
  5. 关闭目录。

下面是一个简单的示例代码,演示如何使用 opendir 和相关函数来实现这个功能:

#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>

int count_files_in_directory(const char *path) {
    DIR *dir;
    struct dirent *entry;
    int count = 0;

    // 打开目录
    dir = opendir(path);
    if (dir == NULL) {
        perror("opendir");
        return -1;
    }

    // 遍历目录中的每个条目
    while ((entry = readdir(dir)) != NULL) {
        // 忽略当前目录和父目录的特殊条目
        if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
            continue;
        }
        
        // 增加计数器
        count++;
    }

    // 关闭目录
    closedir(dir);

    return count;
}

int main(int argc, char *argv[]) {
    if (argc != 2) {
        fprintf(stderr, "Usage: %s <directory_path>\n", argv[0]);
        return EXIT_FAILURE;
    }

    const char *directory_path = argv[1];
    int file_count = count_files_in_directory(directory_path);

    if (file_count >= 0) {
        printf("Number of files in '%s': %d\n", directory_path, file_count);
    }

    return EXIT_SUCCESS;
}

说明:

0
看了该问题的人还看了