readdir
和 opendir
是在許多編程語言中用于處理目錄的函數,尤其是在 C 語言及其衍生語言(如 C++)中。這兩個函數通常一起使用來遍歷一個目錄中的所有文件和子目錄。
opendir:
opendir
函數用于打開一個目錄流,并返回一個指向 DIR
類型的指針。這個指針可以用于后續的目錄操作。DIR *opendir(const char *name);
opendir
返回一個有效的目錄流指針;如果失敗,則返回 NULL
。readdir:
readdir
函數用于從 DIR
類型的目錄流中讀取下一個目錄項。struct dirent *readdir(DIR *dirp);
readdir
都會返回一個指向 struct dirent
的指針,該結構體包含有關目錄項的信息(如文件名)。當沒有更多的目錄項時,readdir
返回 NULL
。使用這兩個函數的基本步驟如下:
opendir
打開一個目錄。readdir
讀取目錄中的每一項,直到返回 NULL
。closedir
函數)。示例代碼:
#include <stdio.h>
#include <dirent.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir("."); // 打開當前目錄
if (dir == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name); // 打印目錄項名稱
}
closedir(dir); // 關閉目錄流
return 0;
}
在這個示例中,程序打開當前目錄并打印出所有文件和子目錄的名稱。