Bonjour à tous,
Mon petit soft consiste à faire un traitement sur des fichiers qui arrivent dans un dossier.
Après avoir renseigné le dossier à mon programme, le thread se lance et regarde toutes les x secondes s'il n'y a pas un nouveau fichier.
Jusque là tout se passait bien jusqu'à ce que je me rende compte que les fichiers lourds prenaient plus de temps pour se copier et que ça faisait planter mon programme qui commencait le traitement alors que le fichier n'avait pas encore fini de se copier.
Comment faire pour éviter ce problème ?
J'avais pensé bloquer le traitement, tant que le fichier n'a pas atteint sa taille complète, sauf que je n'arrive pas à récupérer la taille réelle (pendant la copie).
QFile::size() renvoie la taille complète même si le fichier n'est pas copié entièrement.
Merci d'avance pour votre aide, je suis sûr d'être passé à côté d'une information dans la doc de Qt (mon anglais n'étant pas satisfaisant).
Informations supplémentaires:
Récupération des fichiers avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //Parcours du dossier QDirIterator dirIterator(*m_directoryPath, listFilter ,QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories); while(dirIterator.hasNext()) { nextPicture = dirIterator.next(); if(!m_fileList.contains(nextPicture)) { m_fileList << nextPicture; } }
Partager