115 lines
2.2 KiB
C++
115 lines
2.2 KiB
C++
|
#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
|