Problem mit Verzeichnissdaten einlesen wie zb kompletten Pfad der Dateien



  • Hi
    Vorab ich bin c++ neuling und habe folgendes Problem.

    Klicke ich auf ein Button so kann ich auswählen welches Verzeichniss geöffnet werden soll.
    Klicke ich auf ok soll mir von jeder Datei der komplette link übergeben werden.

    Der hacken is ES GEHT NICHT 😞

    Mein aktueller Relevanter Code:

    try {
            //Variablen deklaration
            QString directory = QFileDialog::getExistingDirectory(this, tr("Directory open"), "/home", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
            const char *directory2 = directory.toStdString().c_str();
            DIR *hdir;
            struct dirent *entry;
    
            hdir = opendir(directory2);
                   do
                   {
                       entry = readdir(hdir);
                       if (entry)
                       {
                           if (strstr(entry->d_name, ".mp3")){
                               //const char link = sprintf(directory2, entry->d_name);
                               char *link;
                               strcat(link, directory2);
                               strcat(link, entry->d_name);
                               cout << link << endl;
                               Playlist->addMedia(QUrl::fromLocalFile(link));
                           }
                       }
                   } while (entry);
                   closedir(hdir);
    
        }
        catch (enum QMediaPlayer::Error){
    
        }
    
        //Playlist mit Player verbinden
        Player->setPlaylist(Playlist);
        //Setze index auf 1
        Playlist->setCurrentIndex(1);
        //Starte Player
        Player->play();
    }
    

    Ih bin der meinung das meine Idee irgendwie schrott ist
    Nur ich habe keine weiteren ideen mehr



  • C oder C++ was willst du denn jetzt?
    Das was du da hast ist keins von beiden.



  • Scorcher24 schrieb:

    C oder C++ was willst du denn jetzt?
    Das was du da hast ist keins von beiden.

    wieso ist das keins von beidem? was ist denn das deiner meinung nach? -> ich denke mal schon das es eines von beidem ist! 😉 (sieht stark nach qt aus 🙂 )

    @fragesteller
    du kannst den pfad nehmen dann mit * durch das "Verzeichniss" gehen, solange bis es keine dateien mehr gibt...
    (so mache ich das manchmal wenn ich den Verzeichnisspfad kenne und nicht genau weiß wie viele dateien zu erwarten sind)
    -> dann hängst du mithilfe von string operationen einfach den dateinamen an den pfad ... und das halt für jede gefundene datei...
    dann kannst du in einer schleife "durch die dateien in dem ordner laufen"...

    alternativ bietet dir qt auch klassen die auf das filesystem zugreifen und dir den "datei"-pfad dann zurückgeben... falls du soetwas brauchst...



  • STL, C und Qt mixen stiftet auch nur Verwirrung.

    Entweder klar trennen oder für eine Lib entscheiden.

    QDir, QString, qDebug(), qPrintable() sollten ausreichen


Anmelden zum Antworten