src/HelpSystem.cpp
// Rekursive Traversion durch die Ordner Struktur
Rekursive Traversion durch die Ordner Struktur
Rekursive Traversion durch die Ordner Struktur
void traverseFolders(const std::string &path, Entry *parent) {
    for (auto &child: std::filesystem::directory_iterator(path)) {
        std::string child_path = child.path();
        std::string last_element(child_path.substr(child_path.rfind('/') + 1));
        auto *entry = new Entry();
        if (child.is_directory()) {
            entry->is_file = false;
            entry->name = last_element;
            entry->sub_entries = std::vector<Entry>();
            traverseFolders(child_path, entry);
        } else {
            readFile(child_path, entry);
            entry->is_file = true;
            entry->name = last_element;
        }
        parent->sub_entries.push_back(*entry);
    }
}
void traverseFolders ( const std :: string & path , Entry * parent ) { for ( auto & child : std :: filesystem :: directory_iterator ( path ) ) { std :: string child_path = child . path ( ) ; std :: string last_element ( child_path . substr ( child_path . rfind ( ' ' ) + 1 ) ) ; auto * entry = new Entry ( ) ; if ( child . is_directory ( ) ) { entry -> is_file = false ; entry -> name = last_element ; entry -> sub_entries = std :: vector < Entry > ( ) ; traverseFolders ( child_path , entry ) ; } else { readFile ( child_path , entry ) ; entry -> is_file = true ; entry -> name = last_element ; } parent -> sub_entries . push_back ( * entry ) ; } }
Rekursive Traversion durch die Ordner Struktur
Rekursive Traversion durch die Ordner Struktur
// ließt die Daten aus dem Dateisystem ein und geht diese dann durch. // Der Pfad der Datei wird so abgeschnitten, das nur noch der Name der Datei übrig bleibt. // Hier wird das Child Entry erstellt, was befüllt wird und dann dem Parent Entry hinzugefügt wird. // Wenn eine Datei, ein Ordner ist, so wird dieser als dieses Markiert und mit einem vector für Datein und unter Ordner versehen. // Als name wird last_element angegeben, was den Vorher aus dem Pfad extrahierten Dateinamen enthält. // Wenn eine Datei kein Ordner ist, so wird Sie als solches gespeichert, als solche Markiert und mit dem Namen versehen. // Fügt die erstellten Entrys, dem Base oder auch Root Entry an, so entsteht die Baum Struktur.