void scanDirectory(FileInfoList &fileEntries, const QString &name, const QString &strDir) { QDir dir(strDir); if (!dir.exists()) return; QFileInfoList *newEntries = (QFileInfoList *) dir.entryInfoList(); if (!newEntries) return; // Directory not accessible ?? for(QFileInfo *qFileInfo = newEntries->first(); qFileInfo; qFileInfo = newEntries->next()) { if (qFileInfo->isFile()) { FileInfo *fileInfo = readEntry( strDir + "/" + qFileInfo->fileName()); if (fileInfo) { fileInfo->name = name + "/" + qFileInfo->fileName(); fileInfo->size = (qFileInfo->size() + 1023) / 1024; fileEntries.append(fileInfo); } } } }
void LogTraceListener::deleteFiles(int days) { if(qApp == NULL) return; QDir dir(qApp->tr(_logPath.c_str())); if(dir.exists()) { string filter = "*.log"; #if WIN32 WIN32_FIND_DATA ffd; HANDLE hFind = INVALID_HANDLE_VALUE; // Find the first file in the directory. hFind = FindFirstFile((_logPath + "/" + filter).c_str(), &ffd); if (INVALID_HANDLE_VALUE != hFind) { // List all the files in the directory with some info about them. do { if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { } else { removeFile(dir, ffd.cFileName, days); } } while (FindNextFile(hFind, &ffd) != 0); FindClose(hFind); } #else dir.setNameFilter(filter.c_str()); QFileInfoList* list = (QFileInfoList*)dir.entryInfoList(); if(list != NULL) { QFileInfo *fi; for ( fi=list->first(); fi != 0; fi=list->next() ) { removeFile(dir, Convert::convertStr(fi->fileName()), days); } } #endif } }