Gewusst wie: auflisten von Dateien in einem Verzeichnis mit dem Windows-API?

Ich habe diesen code und es zeigt Ordner mit dem Verzeichnis selbst, nicht seinen Inhalt. Ich will, um seinen Inhalt anzuzeigen. Ich will nicht von boost::filesystem.

Wie kann ich dies beheben?

Code:

#include <windows.h>
#include <iostream>

int main()
{
    WIN32_FIND_DATA data;
    HANDLE hFind = FindFirstFile("C:\\semester2", &data);      //DIRECTORY

    if ( hFind != INVALID_HANDLE_VALUE ) {
        do {
            std::cout << data.cFileName << std::endl;
        } while (FindNextFile(hFind, &data));
        FindClose(hFind);
    }
}

Ausgabe:

semester2
  • Mögliche Duplikate von How to get Current Directory?
  • Naja, nicht wirklich, aber es gab mir eine Idee! Jetzt funktioniert ' s! Danke! 🙂
  • Seite-Hinweis: Sie sind mit einem schmalen Zeichen-literal mit compile-Zeit ausgewählt Zeichenbreite APIs. Moderne build-Umgebungen neigen dazu, die Standard in Unicode-builds, die dazu führen, diese zu brechen. Würde ich dringend empfehlen entweder die Verwendung explizit Unicode-Typen und APIs überall (add W suffix WIN32_FIND_DATA, FindFirstFile, & FindNextFile, L Präfix-Pfad-literal ersetzen std::cout mit std::wcout) oder mit TCHARs konsequent (add #include <tchar.h> machen das string-literal _T("C:\\semester2"), und bedingt alias std::tcout zu std::cout/std::wcout als angemessen).
InformationsquelleAutor John Escobia | 2016-12-31
Schreibe einen Kommentar