Index: sources/storage/filehandler.cpp =================================================================== diff -u -r15de0cd12dad1ea5107c52e5ed89280bc9e29b1d -rd04653f0fbf1ed98178b6c7094beb4ec226a777f --- sources/storage/filehandler.cpp (.../filehandler.cpp) (revision 15de0cd12dad1ea5107c52e5ed89280bc9e29b1d) +++ sources/storage/filehandler.cpp (.../filehandler.cpp) (revision d04653f0fbf1ed98178b6c7094beb4ec226a777f) @@ -17,9 +17,11 @@ #include #include #include - - +#include +#include +#include // Project +#include "logger.h" // namespace using namespace Storage; @@ -96,3 +98,44 @@ return result; } // coco end + +/*! + * \brief FileHandler::removeFiles + * \details + * \param vFolder + * \param vFilter + * \param vDateOlderThan + * \return + */ +int FileHandler::removeFiles(const QStringList &vFolders, const QStringList &vNameFilter, const QDate &vDateOlderThan) +{ + int countRemoved = 0; + QStringList removed; + for (const auto &folder : vFolders) { + QDir dir(folder); + dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); + dir.setSorting(QDir::Time | QDir::Reversed); + QFileInfoList infoList = dir.entryInfoList(vNameFilter); + for (const auto &info : infoList) { + QDateTime fileTime = info.lastModified(); + QString fileName = info.absoluteFilePath(); + if (fileTime.isValid()) { + if (fileTime.date() < vDateOlderThan) { + if (QFile::remove(fileName)) { + removed += fileName; + ++countRemoved; + } + else { + LOG_ERROR(QString("Can't delete file : ") + fileName); + } + } + } + else { + LOG_ERROR(QString("Can't get last modified date of file : ") + fileName); + } + } + } + + qDebug() << countRemoved << vDateOlderThan << removed; + return countRemoved; +}