21xrx.com
2024-06-03 07:01:22 Monday
登录
文章检索 我的文章 写文章
C++实现文件夹内所有文件路径的读取
2023-07-04 23:25:39 深夜i     --     --
C++ 文件夹 文件路径 读取

C++是一种广泛使用的编程语言,其被广泛用于软件开发、游戏开发、嵌入式系统等领域。在开发过程中,有时需要读取文件夹内的所有文件路径以进行操作。今天我们就来介绍如何在C++中实现文件夹内所有文件路径的读取。

首先,我们需要使用C++标准库中的 头文件。这个头文件提供了访问文件系统的工具,包括文件和文件夹的操作。

接下来,我们需要使用递归函数来实现文件路径的读取。这个递归函数将会遍历文件夹的所有子文件夹以及其中的文件,并将它们的路径存储到一个字符串向量中。下面是一个示例代码:


#include <iostream>

#include <filesystem>

#include <vector>

using namespace std;

namespace fs = std::filesystem;

void getAllFilePath(const fs::path& folderPath, vector<string>& filePath)

{

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

  {

    if (entry.is_directory())

    {

      getAllFilePath(entry.path(), filePath);

    }

    else

    {

      filePath.push_back(entry.path().u8string());

    }

  }

}

int main()

{

  vector<string> filePath;

  fs::path folderPath("D:/test");

  getAllFilePath(folderPath, filePath);

  for (const auto& path : filePath)

  

    std::cout << path << std::endl;

  

  return 0;

}

在这个示例代码中,我们首先定义了一个函数`getAllFilePath`,它的参数有两个:`folderPath`为需要遍历的文件夹路径,`filePath`为存储文件路径的字符串向量。

`directory_iterator`遍历folderPath下的所有文件和文件夹。如果`entry`是文件夹,则递归调用`getAllFilePath`函数来获取其子文件夹和文件;如果是文件,则将其路径存储到`filePath`。

在`main`函数中,我们首先定义了一个空的字符串向量`filePath`。然后,我们定义了一个文件夹路径`folderPath`,用于指定我们要遍历的文件夹。接下来,我们调用`getAllFilePath`函数来获取所有文件的路径,并将其存储到`filePath`中。最后我们遍历了一遍`filePath`,将每个路径输出到控制台上。

总之,使用C++可以轻松地实现文件夹内所有文件路径的读取,这对于开发者来说非常有用,同时也提高了开发效率。

  
  

评论区

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