21xrx.com
2024-11-08 21:57:01 Friday
登录
文章检索 我的文章 写文章
C++读取目录下所有文件名
2023-06-27 18:12:52 深夜i     --     --
C++ 目录 文件名 读取 所有

C++是一种强大的编程语言,可以方便地读取目录下所有文件名。读取目录下所有文件名在文件操作中是一个非常常见的需求。下面我们来看看在C++中如何实现。

在C++中,处理文件名需要使用头文件 。其中, 适用于Unix和Linux系统,而 适用于Windows系统。

以下是使用 头文件的示例代码:


#include <iostream>

#include <dirent.h>

using namespace std;

int main(){

  DIR *dir;

  struct dirent *ent;

  if ((dir = opendir ("C:\\Temp\\Data")) != NULL) { //替换为所需文件夹路径

   while ((ent = readdir (dir)) != NULL)

    cout << ent->d_name << endl;

   

   closedir (dir);

  } else {

   perror ("无法打开目录");

   return EXIT_FAILURE;

  }

  return 0;

}

以上代码使用了opendir()函数打开文件夹,readdir()函数读取文件夹下的每一个文件名,直到没有文件为止,最后使用closedir()函数关闭文件夹。

以上代码适用于Unix和Linux系统,而对于Windows系统,我们需要使用 头文件。

以下是使用 头文件的示例代码:


#include<iostream>

#include<Windows.h>

#include<string>

using namespace std;

int main(){

  string path="C:\\Temp\\Data\\"; //替换为所需文件夹路径

  string current_file;

  WIN32_FIND_DATA data;

  HANDLE hFind;

  hFind = FindFirstFile((path + "*.txt").c_str(), &data);

  if (hFind != INVALID_HANDLE_VALUE) {

    do {

      current_file = data.cFileName;

      if (current_file != "." && current_file != "..")

        cout<< current_file << endl;

    } while (FindNextFile(hFind, &data));

    FindClose(hFind);

  }

  return 0;

}

以上代码使用了FindFirstFile()函数查找文件夹下所有txt文件,然后使用FindNextFile()函数读取文件夹下的每一个文件名,直到没有文件为止,最后使用FindClose()函数关闭文件夹。

以上就是C++读取目录下所有文件名的方法了。无论是使用 头文件还是 头文件,都让我们能够快速方便地读取目录下所有文件名。

  
  

评论区

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