C++ 打开文件夹并获取子文件夹

Posted

技术标签:

【中文标题】C++ 打开文件夹并获取子文件夹【英文标题】:C++ open folder and fetch for subfolder 【发布时间】:2021-09-24 10:59:30 【问题描述】:

我正在寻找一种方法来获取已知文件夹中的所有子文件夹并打开它们,然后继续查找该文件夹中的所有子文件夹,继续打开它们直到没有任何子文件夹留下,然后移动到另一个C++ 中的文件夹。感谢您的帮助!

【问题讨论】:

恕我直言,这对于一个 SO 问题来说太宽泛了。如果您的环境支持 C++17 或更高版本,则可以使用 std::filesystem 库。否则你可以在 boost 中找到它。如果两者都不是一个选项,您将不得不使用特定于操作系统的调用。 非常感谢! 欢迎您提供有用的提示,但不要忘记接受和/或支持答案。有人花时间和精力为您编写它,完全免费。 【参考方案1】:

跟进 Serge Ballesta 的评论。

如果你可以编译 c++17,那么就使用 std::filesystem。

这个SO provides a solution to 'LS' a specific dir。需要添加递归。

但是,如果您无法运行 c++17,那么您需要考虑您正在使用的操作系统。

如果 Linux 并使用 GCC,请使用本机“dirent.h”

SO 发布解决方案。 只需要#include dirent.h

如果是 Windows,可以使用 windows.h 或使用适用于 windows 的流行的 dirent.h 库扩展。

如果使用 windows.h 原生方法,这里有一个 SO post 的解决方案。

如果使用 windows 扩展的 dirent.h。这是githublink。只需要抓住标题并添加到您的项目中。

如果跨平台工作会更好 我刚刚在我的项目中使用了这个,非常方便和容易。

【讨论】:

不错!我想我会尝试 dirent.h

以上是关于C++ 打开文件夹并获取子文件夹的主要内容,如果未能解决你的问题,请参考以下文章

求助:shell获取文件下最新的一个文档,并打开它

检查文件访问,获取进程ID

在 C++ 中打开文件时出错:从字符串中获取字符时出错

在 C++ 中打开 Unicode 文本文件并显示其内容

C++ 关闭文本文件并打开新的控制台窗口

我希望它在单独打开 exe 文件时关闭