Avatar ·

Wie erhalte ich eine Liste von Dateien in einem Verzeichnis in C++? (plattformunabhängig)

Hallo zusammen! Ich bin ein Anfänger in C++-Entwicklung und habe ein Problem. Ich muss eine Funktion schreiben, die eine Liste aller Dateien in einem bestimmten Verzeichnis abruft. Ich arbeite unter Windows, möchte aber, dass der Code auch unter Linux (oder macOS) ohne Umschreiben funktioniert. Das Problem ist, dass ich mehrere verschiedene Wege gefunden habe. Zum Beispiel gibt es unter Windows die WinAPI-Funktionen `FindFirstFile` / `FindNextFile`. Unter Linux — `opendir` / `readdir`. Aber das ist furchtbar umständlich: `#ifdef _WIN32` schreiben und Code duplizieren. Ich habe gehört, dass in C++17 so etwas wie `std::filesystem` erschienen ist. Aber ich bin nicht sicher, ob das in der Praxis funktioniert. Mein Compiler (MSVC 2022) unterstützt anscheinend C++17, aber ich habe Angst, dass es auf alten Servern oder in Embedded-Systemen nicht kompilieren könnte. Hier ist ein Beispiel von dem, was ich versuche zu tun (Pseudocode): ```cpp #include #include #include // Welche Funktion soll ich aufrufen? Ich möchte einen vector mit Dateinamen erhalten. std::vector getFilesInDirectory(const std::st