如何使用 C 或 C++ 获取目录中的文件列表?
cc++server side programmingprogramming
让我们考虑以下 C++ 示例代码来获取目录中的文件列表。
算法
开始 声明指向 DIR 类型的指针 dr。 声明 dirent 结构的另一个指针 en。 调用 opendir() 函数打开当前目录中的所有文件。 将 dr 指针初始化为 dr = opendir(".")。 If(dr) while ((en = readdir(dr)) != NULL) 使用 en->d_name 打印所有文件名。 调用 closedir() 函数关闭目录。 结束。
示例
#include <iostream> #include <dirent.h> #include <sys/types.h> using namespace std; int main(void) { DIR *dr; struct dirent *en; dr = opendir("."); //打开所有目录 if (dr) { while ((en = readdir(dr)) != NULL) { cout<<" \n"<en->d_name; //打印所有目录名称 } closedir(dr); //关闭所有目录 } return(0); }
输出
BINSEARC.C BINTREE (1).C BINTREE.C BTREE.C BUBBLE.C c.txt file3.txt HEAP.C HEAPSORT.C HLINKLST.C INSERTIO.C LINKLIST.C LINKLST.C LLIST1.C players.cpp PolarRect.cpp QUEUE.C
示例
#include <stdio.h> #include <dirent.h> int main(void) { DIR *dr; struct dirent *en; dr = opendir("."); //打开所有或当前目录 if (dr) { while ((en = readdir(dr)) != NULL) { printf("%s\n", en->d_name); //打印所有目录名称 } closedir(dr); //关闭所有目录 } return(0); }
输出
BINSEARC.C BINTREE (1).C BINTREE.C BTREE.C BUBBLE.C c.txt file3.txt HEAP.C HEAPSORT.C HLINKLST.C INSERTIO.C LINKLIST.C LINKLST.C LLIST1.C