123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #include "QWorld.h"
- #include "QDateTime"
- #pragma region 文件夹操作
- #pragma region 删除N天前的文件
- //删除N天前的文件
- 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 删除N天前的文件夹
- //删除N天前的文件夹
- 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);
- }
- //获取数组中最小值的索引
- 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
|