opencv_mv/QMainPro/QMacVisual/QWorld/FolderOperation.cpp

115 lines
2.2 KiB
C++
Raw Permalink Normal View History

2023-05-22 09:27:46 +00:00
#include "QWorld.h"
#include "QDateTime"
#pragma region <20>ļ<EFBFBD><C4BC>в<EFBFBD><D0B2><EFBFBD>
#pragma region ɾ<><C9BE>N<EFBFBD><4E>ǰ<EFBFBD><C7B0><EFBFBD>ļ<EFBFBD>
//ɾ<><C9BE>N<EFBFBD><4E>ǰ<EFBFBD><C7B0><EFBFBD>ļ<EFBFBD>
bool FolderOperation::FindFileForDelete(QString key, QString path, int day)
{
if (key != "59226f4700f1cc8a5de755d501af308d2d2")
{
return false;
}
try
{
QDateTime now = QDateTime::currentDateTime();
QDateTime dateTime1 = now.addDays(day);
QDateTime dateTime2;
QDir dir(path);
QFileInfoList fileList = dir.entryInfoList();
for (QFileInfo f : fileList)
{
if (f.baseName() == "")
{
continue;
}
dateTime2 = f.created();
if (dateTime2 < dateTime1)
{
dir.remove(f.absoluteFilePath());
}
}
return true;
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma region ɾ<><C9BE>N<EFBFBD><4E>ǰ<EFBFBD><C7B0><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
//ɾ<><C9BE>N<EFBFBD><4E>ǰ<EFBFBD><C7B0><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
bool FolderOperation::FindFolderForDelete(QString key, QString path, int day)
{
if (key != "59226f4700f1cc8a5de755d501af308d2d2")
{
return false;
}
try
{
QList<QString> dirs;
dirs.reserve(1000);
dirs.clear();
QDir dir(path);
dir.setFilter(QDir::Dirs);
for (auto fullDir : dir.entryInfoList())
{
if (fullDir.fileName() == "." || fullDir.fileName() == "..")
continue;
dirs.push_back(fullDir.absoluteFilePath());
}
if (dirs.size() < day)
{
return false;
}
else
{
QList<quint64> times = QList<quint64>();
times.reserve(1000);
times.clear();
QList<QString> folder = QList<QString>();
folder.reserve(1000);
folder.clear();
for (auto dir : dirs)
{
QFileInfo fl(dir);
QDateTime DT = fl.created();
QDateTime dt0(QDate(1970, 1, 1));
quint64 time = DT.toTime_t() - dt0.toTime_t();
times.append(time);
folder.append(dir);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<D0A1><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int index = -1;
QVector<quint64> max_and_min(2);
if (times.size() != 0)
{
max_and_min[1] = times[0];
index = 0;
for (int i = 0; i < times.size(); i++)
{
if (max_and_min[1] > times[i])
{
index = i;
max_and_min[1] = times[i];
}
}
}
QDir dir_x;
if (dir_x.exists(folder[index]))
{
dir_x.setPath(folder[index]);
dir_x.removeRecursively();
}
return true;
}
}
catch (...)
{
return false;
}
}
#pragma endregion
#pragma endregion