Aktuell schreibe ich ein Programm welches einen Datenträger/Pfad/Ordner durchsuchen soll und dabei alle Bilddateien finden soll.
Das funktioniert auch schon ganz gut, hier Auszugsweise mein Ansatz.
Code: Alles auswählen
void PicSearch::getfile(QModelIndex pathdata)
{
listWidget_2->setAutoScroll(true);
QString path;
path = model->filePath(pathdata);
int i = 0;
//int tv3= 1;
QStringList filters,testlist,matchlist;
filters << "*.jpg";
QDirIterator it(path, QDirIterator::Subdirectories);
while (it.hasNext()) {
// qDebug() << it.next();
it.next();
++i;
testlist.append(it.fileName());
textBrowser->setText(tr("Discovering Filesystem\r\n%1 Files processed\r\n")
.arg(i));
qApp->processEvents();
}
int j = testlist.size();
int k = 0;
int l = 0;
//qDebug() << j;
while (k<j)
{
if (testlist[k].contains(".jpg"))
{
matchlist.append(testlist[k]);
listWidget_2->insertItem(i,matchlist[l]);
++i;
++l;
qApp->processEvents();
}
++k;
Meine Frage ist, ist das der potenteste Weg oder kann man das ganze noch beschleunigen ?
Mir ist vollkommen klar das das durchsuchen des Filesystems Zeit braucht, darum geht es hier auch nicht, meine Intention ist eher das ich den schnellsten Weg nutzen möchte
Wäre nett wenn da jemand noch ein paar tipps für mich als neuling hätte, bisher habe ich daran gedacht das ganze auf verschiedene threads aufzusplitten, die Frage ist aber wie, denkbar wäre sicher -> Ordner a hat 10 Unterordnner -> Thread 1 übernimmt 1-5, Thread 2 dann 6-10......
// edit
o.k. die "Sortierroutine" kann ich mir schonmal sparen, wenn ich die Dateien filtere, siehe
http://www.developer.nokia.com/Communit ... ry_content
bleibt noch die Frage ob man es durch aufteilung in threads merklich beschleunigen könnte, oder falls jemand eine gänzlich andere Lösung einfällt bin ich da auch ganz Ohr bzw. Auge
und in diesem Zusammenhang ......
was ist KFilterSuffix ??
Code: Alles auswählen
if(dirIterator.fileInfo().completeSuffix().contains(KFilterSuffix,Qt::CaseInsensitive))
{
list.append(dirIterator.fileInfo().absoluteFilePath());
}auch Freund google sagt dazu mal erstaunlicherweise so gut wie gar nix......