21xrx.com
2024-12-22 18:30:36 Sunday
登录
文章检索 我的文章 写文章
C++获取目录下所有文件名
2023-07-07 21:50:51 深夜i     --     --
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++ 可以是一个非常好的选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复