Erstmal Danke für dein Antwort
Sorry, hätte vermutlich ein wenig mehr Info geben sollen...
Also ich lese aus einem Verzeichnis (samt Unterverzeichnissen) alle dort vorhandenen Video-Dateien ein und speichere den jeweiligen Dateipfad in einer Datenbank. In einem weiteren Schritt nehme ich jede einzelne Datei, rufe mit dem Dateipfad das kleine Konsolenprogramm mediainfo auf, das mir ne ganze Menge Infos, wie Länge, Codecs, etc. über die Video-Datei gibt.
Das funktioniert generell auch problemlos - doch es scheitert an Dateien mit eckigen Klammern im Dateinamen. Generell sind für mediainfo eckige Klammern kein Problem, denn wenn ich von der Konsole "mediainfo -X -i /pfad/zu/der/Bei[spiel]datei.mp4" aufrufe, dann bekomme ich alle gewünschten Infos.
Nur das übergeben in Qt funktioniert aus irgendeinem Grund nicht. Hier ist mal ein Ausschnitt des dafür verantwortlichen Codes:
Code: Alles auswählen
(...)
QSqlQuery query = db.exec("SELECT filepath FROM files");
while(query.next()) {
QStringList args;
args << "-X" << "-i" << query.value(query.record().indexOf("filepath")).toByteArray().replace("\\'","'").trimmed();
mediainfo->start("mediainfo",args);
while(mediainfo->waitForFinished()) {
}
}
(...)
mediainfo habe ich mit einer Funktion verbunden, die die Ausgabe auswertet. Das alles funktioniert auch einwandfrei, doch eben bei Dateien mit eckigen Klammern bekomme ich keine Ausgabe.
Also ich vermute, dass das ein Problem in meinem Code ist...
Edit:
Ich habe mal anstatt den Dateinamen aus der Datenbank zu nehmen, einen Dateinamen, der eckige Klammern enthält fest einprogrammiert (also: args << "-X" << "-i" << "/B/e/isp[iel]datei.mp4"). Dies bringt ebenfalls einen Fehler... wird vielleicht von QProcess::execute() Sachen innerhalb von [] "verändert", also ich meine, müssen die Klammern evtl. irgendwie maskiert werden??