如何在 C++ 中获取目录中的文件列表?(跨平台)
大家好!我是一名初学 C++ 的开发者,遇到了一个问题。我需要编写一个函数,获取指定目录中所有文件的列表。我在 Windows 上工作,但希望代码也能在 Linux(或 macOS)上运行,无需重写。
问题在于我找到了几种不同的方法。例如,在 Windows 上有 WinAPI 函数 `FindFirstFile` / `FindNextFile`。在 Linux 上有 `opendir` / `readdir`。但这非常不方便:需要写 `#ifdef _WIN32` 并重复代码。
我听说 C++17 中引入了类似 `std::filesystem` 的东西。但我不确定它是否在实践中有效。我的编译器(MSVC 2022)似乎支持 C++17,但我担心在旧服务器或嵌入式系统中可能无法编译。
以下是我尝试做的示例(伪代码):
```cpp
#include
#include
#include
// 应该调用哪个函数?我想获取一个包含文件名的 vector。
std::vector getFilesInDirectory(const std::st