溫馨提示×

Linux readdir遍歷目錄技巧

小樊
42
2025-08-04 07:50:13
欄目: 智能運維

在Linux中,readdir函數是用于遍歷目錄的主要方法。它定義在dirent.h頭文件中。以下是一些使用readdir遍歷目錄的技巧和示例:

  1. 包含必要的頭文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
  1. 打開目錄:
DIR *dir = opendir(path);
if (dir == NULL) {
    perror("opendir");
    return 1;
}
  1. 使用readdir讀取目錄中的條目:
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
    // 處理目錄條目
}
  1. 關閉目錄:
closedir(dir);
  1. 處理目錄條目:

在循環中,你可以處理每個目錄條目。例如,你可以打印文件名、檢查文件類型等。

struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
    printf("%s\n", entry->d_name);
}
  1. 檢查文件類型:

你可以使用stat函數獲取文件的詳細信息,然后根據文件類型進行處理。

struct dirent *entry;
struct stat file_stat;
while ((entry = readdir(dir)) != NULL) {
    char path[PATH_MAX];
    snprintf(path, sizeof(path), "%s/%s", dir->d_name, entry->d_name);

    if (stat(path, &file_stat) == -1) {
        perror("stat");
        continue;
    }

    if (S_ISREG(file_stat.st_mode)) {
        printf("Regular file: %s\n", entry->d_name);
    } else if (S_ISDIR(file_stat.st_mode)) {
        printf("Directory: %s\n", entry->d_name);
    } else {
        printf("Other: %s\n", entry->d_name);
    }
}
  1. 錯誤處理:

在遍歷目錄時,可能會遇到錯誤。確保檢查opendir、readdirstat等函數的返回值,并在出現錯誤時進行適當的處理。

這些技巧應該足以幫助你使用readdir函數遍歷Linux目錄。根據你的需求,你可以對這些示例進行修改和擴展。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女