21xrx.com
2024-11-05 14:57:42 Tuesday
登录
文章检索 我的文章 写文章
如何用C++读取文件夹中的所有文件?
2023-07-02 17:49:08 深夜i     --     --
C++ 读取 文件夹 所有文件

在C++中,要读取文件夹中的所有文件,需要使用系统的文件操作功能。下面是一些可以帮助你实现这个功能的方法:

1. 使用Windows API

如果你的程序是运行在Windows平台上的,可以使用Windows API来读取文件夹中的所有文件。具体方法如下:


#include <windows.h>

int main()

{

  WIN32_FIND_DATA data;

  HANDLE hFind;

  //打开文件夹

  hFind = FindFirstFile("C:\\folder\\*.*", &data);

  if (hFind != INVALID_HANDLE_VALUE)

  {

    do

    {

      //判断是否为文件

      if (!(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))

      

        std::cout << data.cFileName << std::endl;

      

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

    FindClose(hFind);

  }

  return 0;

}

2. 使用C++标准库

如果你的程序运行在Linux或其他类Unix系统上,可以使用C++标准库中的文件操作相关类来实现读取文件夹中的所有文件。具体方法如下:


#include <iostream>

#include <fstream>

#include <filesystem>

namespace fs = std::filesystem;

int main()

{

  std::string path = "/path/to/folder";

  for (const auto& entry : fs::directory_iterator(path))

  {

    //判断是否为文件

    if (entry.is_regular_file())

    {

      std::cout << entry.path() << std::endl;

    }

  }

  return 0;

}

以上两种方法都可以读取文件夹中的所有文件,具体使用哪种方法,可以根据程序运行的平台以及个人的喜好来选择。

  
  

评论区

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