centos

如何用CentOS readdir批量处理文件

小樊
36
2025-04-22 22:18:03
栏目: 智能运维

在 CentOS 系统中,使用 readdir 函数可以遍历目录中的文件。以下是一个简单的示例,展示如何使用 C 语言编写一个程序来批量处理目录中的文件:

  1. 首先,确保你已经安装了 CentOS 系统,并且已经安装了 C 编译器。如果没有安装,可以使用以下命令安装:
sudo yum install gcc
  1. 创建一个名为 readdir_example.c 的文件,并将以下代码粘贴到文件中:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>

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

    char *dir_path = argv[1];
    struct dirent *entry;
    DIR *dp = opendir(dir_path);

    if (!dp) {
        perror("opendir");
        return 1;
    }

    while ((entry = readdir(dp)) != NULL) {
        if (entry->d_type == DT_REG) { // 只处理普通文件
            char file_path[PATH_MAX];
            snprintf(file_path, sizeof(file_path), "%s/%s", dir_path, entry->d_name);

            struct stat file_stat;
            if (stat(file_path, &file_stat) == 0) {
                printf("Processing file: %s\n", file_path);
                // 在这里添加你需要对文件执行的操作
            }
        }
    }

    closedir(dp);
    return 0;
}
  1. 保存文件并使用 gcc 编译:
gcc readdir_example.c -o readdir_example
  1. 运行编译后的程序,传入要处理的目录路径作为参数:
./readdir_example /path/to/your/directory

这个程序会遍历指定目录中的所有普通文件,并打印出文件路径。你可以根据需要在 printf 语句之后添加对文件执行的操作。

0
看了该问题的人还看了