Repository navigation
Expand file tree
/
Copy pathlecturethread.cpp
More file actions
56 lines (44 loc) · 1.67 KB
/
Copy pathlecturethread.cpp
File metadata and controls
56 lines (44 loc) · 1.67 KB
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
#include "lecturethread.h"
#include <QDir>
#include <QDirIterator>
#include <iostream>
void LectureThread::setStopAsked(bool stopAsked)
{
_stopAsked = stopAsked;
}
LectureThread::LectureThread(QStringList folderNames, QStringList extensions)
: _selectedFolders(folderNames), _selectedExtensions(extensions)
{
}
void LectureThread::run() {
// Parcourir les dossiers sélectionnés
for (QString folderPath : _selectedFolders) {
QDir dir(folderPath);
QDirIterator it(dir.absolutePath(), QDirIterator::Subdirectories | QDirIterator::NoIteratorFlags);
// Parcourir les fichiers du dossier courant
while (it.hasNext()) {
if (_stopAsked)
break;
QString filePath = it.next();
QFileInfo fileInfo(filePath);
if (_selectedExtensions.contains(fileInfo.completeSuffix())) {
struct FileInfo actualFileInfo;
actualFileInfo.name = fileInfo.fileName();
actualFileInfo.path = fileInfo.filePath();
actualFileInfo.created_at = fileInfo.birthTime();
actualFileInfo.updated_at = fileInfo.lastModified();
actualFileInfo.size = fileInfo.size();
actualFileInfo.extension = fileInfo.completeSuffix();
// Émettre le signal pour envoyer les informations du fichier
valueChanged(actualFileInfo);
}
}
}
_stopAsked = false;
}
void LectureThread::setSelectedFolders(QStringList foldersList) {
_selectedFolders = foldersList;
}
void LectureThread::setSelectedExtensions(QStringList extensionsList) {
_selectedExtensions = extensionsList;
}