По сути, у меня есть каталог, в котором я хочу сохранить максимум X элементов, и после этого каждый добавленный файл должен инициировать удаление самого старого сохраненного элемента.Поэтому я решил упорядочить их по времени в QFileInfoList, но, к сожалению, это зависит от системного времени (если пользователь переключит часы на Y часов, последние добавленные файлы будут считаться самыми старыми и, следовательно, удаляться).Вот что я написал до сих пор с проблемой системного времени:
void namespace::cleanStationLogoDir()
{
QDir dir(DIR);
if(!dir.exists())
{
//Create directory
if(dir.mkpath(DIR))
{
//Ok result
}
else
{
qDebug() << "Unable to create dir.";
}
}
QFileInfoList files = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::Time);
qDebug() << "files size: " << files.size();
while(files.size() > X)
{
qDebug() << "Removed last element" << files.last().filePath();
dir.remove(files.takeLast().filePath());
qDebug() << "files size: " << logo_files.size();
}
}
Знаете ли вы какой-нибудь другой способ сделать это?Я подумал о добавлении добавочного идентификатора к имени файлов во время их хранения, но после файлов max_INT это может оказаться проблемой, или если я перенесу идентификаторы в элементы X, то я не уверен, какие удалить на следующемфайл получен.