21xrx.com
2025-03-28 02:34:37 Friday
文章检索 我的文章 写文章
C++获取目录下所有文件名
2023-07-07 21:50:51 深夜i     35     0
C++ 获取 目录 文件名 遍历

C++ 是一种非常流行的编程语言,它被广泛应用于各种计算机应用程序的开发领域。其中,如果我们想要获取目录下的所有文件名,C++也提供了一些方便的库函数。

下面就介绍一下如何在 C++ 中获取目录下的所有文件名:

1.首先需要包含头文件:

#include<dirent.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

2.初始化目录路径和读取指针:

char *directory_path="/user/home/documents/";
DIR *directory_pointer;
struct dirent *each_file;
directory_pointer=opendir(directory_path);

3.遍历文件夹中的所有文件名:

while((each_file=readdir(directory_pointer))!=NULL)
{
  printf("%s\n",each_file->d_name);
}

在上述代码中,opendir() 函数可以打开指定目录,并返回一个指向 DIR 的指针。readdir() 函数可以读取该目录下的每个文件名,并返回指向 struct dirent 的指针。因此,我们可以通过循环遍历每个文件名,从而获得该目录下的所有文件名。

另外值得注意的是,opendir() 和 readdir() 函数都会返回指向一段内存空间的指针,因此在使用完毕后需要调用 closedir() 函数来释放内存。

最后,为了方便更多开发者阅读及使用,我们把上述代码的完整版整理如下:

#include<dirent.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
  char *directory_path="/user/home/documents/";
  DIR *directory_pointer;
  struct dirent *each_file;
  directory_pointer=opendir(directory_path);
  if(directory_pointer==NULL)
  {
    printf("ERROR: Cannot open directory\n");
    exit(EXIT_FAILURE);
  }
  while((each_file=readdir(directory_pointer))!=NULL)
  {
    printf("%s\n",each_file->d_name);
  }
  closedir(directory_pointer);
  return 0;
}

总体来说,C++ 所提供的库函数使我们能够轻松地获取目录下的所有文件名。因此,如果我们需要开发一些涉及到文件管理的业务程序,C++ 可以是一个非常好的选择。

  
  

评论区

请求出错了