Beispiel #1
0
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
		}
	}