Linux readdir遍歷目錄步驟

linux系統中,利用readdir函數可以有效地遍歷目錄。以下是使用readdir進行目錄遍歷的基本步驟:

  1. 包含必要的頭文件
#include <dirent.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h>
  1. 打開目錄
DIR *dir = opendir(path); if (dir == NULL) {     perror("無法打開目錄");     exit(EXIT_FaiLURE); }

這里的path是您希望遍歷的目錄路徑。

  1. 讀取目錄中的條目
struct dirent *entry; while ((entry = readdir(dir)) != NULL) {     // 處理目錄條目 }

readdir函數會返回一個指向dirent結構體指針,該結構體包含了目錄條目的相關信息。當沒有更多條目時,readdir會返回NULL。

  1. 處理目錄條目:在循環中,您可以對每個目錄條目進行處理。例如,打印文件名:
printf("%sn", entry->d_name);
  1. 關閉目錄:遍歷完成后,使用closedir函數關閉目錄:
closedir(dir);

下面是一個完整的示例,展示如何使用readdir遍歷目錄并打印所有文件和子目錄的名稱:

#include <dirent.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h>  int main(int argc, char *argv[]) {     if (argc != 2) {         fprintf(stderr, "使用方法: %s <目錄>n", argv[0]);         return EXIT_FAILURE;     }      const char *path = argv[1];     DIR *dir = opendir(path);     if (dir == NULL) {         perror("無法打開目錄");         return EXIT_FAILURE;     }      struct dirent *entry;     while ((entry = readdir(dir)) != NULL) {         printf("%sn", entry->d_name);     }      closedir(dir);     return EXIT_SUCCESS; }

編譯并運行此程序,傳入您希望遍歷的目錄路徑作為參數。程序將輸出該目錄中所有文件和子目錄的名稱。

Linux readdir遍歷目錄步驟

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享