1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
QList<QString> listElemAjout;
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
QXmlStreamReader reader(reply->readAll());
reader.readNext();
while(!reader.atEnd())
{
reader.readNext();
if(reader.error())
{
qDebug() << reader.error();
return;
}
if(reader.isStartElement())
{
if (reader.name() == "liste_fichiers")
{
while(!(reader.isEndElement() && reader.name().compare("liste_fichiers")==0))
{
reader.readNext();
if(reader.isStartElement() && reader.name() == "fichier")
{
QString attrNAME = reader.attributes().value("name").toString();
QString attrDIR = reader.attributes().value("dir").toString();
QString attrMD5 = reader.attributes().value("md5").toString().trimmed();
QString strNameContrib = reader.readElementText();
QString cheminDuRepertoire = QCoreApplication::applicationDirPath();
QDir repertoire(cheminDuRepertoire);
repertoire.setFilter(QDir::NoDotAndDotDot | QDir::Files);
if(QFile::exists(attrDIR+attrNAME) == false)
{
listElemAjout.push_back(attrNAME);
}
foreach(QFileInfo fileInfo, repertoire.entryInfoList())
{
QFile file(fileInfo.absoluteFilePath());
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
QCryptographicHash md5(QCryptographicHash::Md5);
md5.addData(data);
QByteArray hah = md5.result();
if(fileInfo.fileName() == attrNAME)
{
if(attrNAME.compare(fileInfo.fileName(), Qt::CaseInsensitive) == 0)
{
listElemAjout.push_back(attrNAME);
}
}
}
}
}
}
}
}
// Liste de tout les noms de fichiers à télécharger
for (int i = 0; i < listElemAjout.size(); i++)
{
qDebug() << listElemAjout[i];
}
reply->deleteLater();
telechargement_fichier();
}
void FenUpdater::telechargement_fichier()
{
// Boucle pour télécharger tout les fichiers de la liste !
QNetworkRequest url_requete(QUrl("fichier"));
QNetworkAccessManager *manager = new QNetworkAccessManager;
QNetworkReply *reply = manager->get(url_requete);
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(messageErreur(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(infos_telechargement_fichier(qint64, qint64)));
connect(reply, SIGNAL(finished()), this, SLOT(enregistrer()));
} |
Partager