在 C 編程語言中,copendir() 函數用于打開指定的目錄,并返回一個指向 DIR 類型結構的指針,供后續對目錄的操作使用。要讀取目錄中的條目,則需要配合 readdir() 函數一起使用。下面是一段示例代碼,演示了如何利用 copendir() 和 readdir() 遍歷某個目錄下的所有文件和子目錄:
#include <stdio.h> #include <stdlib.h> #include <dirent.h> int main() { DIR *dir; struct dirent *entry; // 打開當前工作目錄 dir = opendir("."); if (dir == NULL) { perror("opendir"); return EXIT_FAILURE; } // 逐個讀取目錄項 while ((entry = readdir(dir)) != NULL) { printf("%sn", entry->d_name); } // 關閉已打開的目錄流 closedir(dir); return EXIT_SUCCESS; } </dirent.h></stdlib.h></stdio.h>
各函數作用說明:
- opendir():此函數負責打開指定路徑的目錄,并返回一個 DIR 指針。若打開失敗則返回 NULL。
- readdir():該函數用于從已經打開的目錄流中讀取下一個目錄項。它會返回一個 dirent 結構指針,其中包含諸如文件名(d_name)等信息。
- closedir():用來關閉之前通過 opendir() 打開的目錄流。
使用提示:
- readdir() 返回的結構體中,d_name 成員是以空字符結尾的字符串,代表當前目錄項的名字。
- 在完成目錄操作后,務必調用 closedir() 來釋放系統資源。
- 如果發生錯誤,可以借助 perror() 輸出詳細的錯誤信息。
上述程序將打印當前目錄下所有的文件及子目錄名稱。如需訪問其他目錄內容,只需將 “.” 替換為對應的有效路徑即可。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END