如何使用 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

相关文章