Comparare il contenuto di due cartelle
Unsolved
Italian
-
ciao!
vorrei compare il contenuto di due cartelle, ma sto avendo qualche difficoltà.
questo il contenuto:$ ls -l Desktop/A total 8 -rw-r--r--@ 1 matte staff 8 5 Feb 08:30 uno.txt $ ls -l Desktop/B total 16 -rw-r--r--@ 1 matte staff 5 5 Feb 08:30 due.txt -rw-r--r--@ 1 matte staff 8 5 Feb 08:30 uno.txt
quindi un file è uguale.
mi sono fermato a questo codice, che ovviamente non funziona:#include <QCoreApplication> #include <QDebug> #include <QDir> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QDir dirA("/Users/matte/Desktop/A"); QDir dirB("/Users/matte/Desktop/B"); QFileInfoList listaA = dirA.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden, QDir::DirsFirst); QFileInfoList listaB = dirB.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden, QDir::DirsFirst); for(int i = 0; i < listaA.size(); i++) { QFileInfo fileA = listaA.at(i); QFileInfo fileB = listaB.at(i); if(fileA.fileName() == fileB.fileName()) { qDebug() << "OK: " << fileA.fileName(); } else { qDebug() << "KO: " << fileA.fileName(); } } qDebug() << "-------------------"; return a.exec(); }
nella cartella B il file uguale, viene dopo l'altro per un discorso di ordine alfabetico.
e quindi già cosi non mi da il risultato corretto.
come dovrei comparare le due liste?? -
Prova a vedere se questo esempio ti può andare bene
https://github.com/denisgottardello/BackupTo/blob/master/qthsynchronize.cpp
funzione
QThSynchronize::DirectoryCheckToCopy