Como obter a lista de arquivos em um diretório em C++? (multi-plataforma)
Olá a todos! Sou um desenvolvedor C++ iniciante e tive um problema. Preciso escrever uma função que obtenha a lista de todos os arquivos em um diretório especificado. Estou trabalhando no Windows, mas gostaria que o código funcionasse também no Linux (ou macOS) sem reescrever.
O problema é que encontrei várias maneiras diferentes. Por exemplo, no Windows existem as funções WinAPI `FindFirstFile` / `FindNextFile`. No Linux — `opendir` / `readdir`. Mas isso é terrivelmente inconveniente: escrever `#ifdef _WIN32` e duplicar código.
Ouvi dizer que no C++17 apareceu algo como `std::filesystem`. Mas não tenho certeza se isso funciona na prática. Meu compilador (MSVC 2022) parece suportar C++17, mas temo que em servidores antigos ou sistemas embarcados isso possa não compilar.
Aqui está um exemplo do que estou tentando fazer (pseudocódigo):
```cpp
#include
#include
#include
// Qual função chamar? Eu quero obter vector com os nomes dos arquivos.
std::vector getFilesInDirectory(const std::st