void StdOutputRedirector::removeoldArchives() { vector<std::string> myFiles = getDirectoryEntries(getDirectoryPart(_myOutputFilename)); // search the newest int myNewestIndex = -1; time_t myHighestTimeStamp = 0; vector<int> myFilesToDelete; for (vector<std::string>::size_type myFileIndex = 0; myFileIndex != myFiles.size(); myFileIndex++) { string myFilename = myFiles[myFileIndex];//getDirectoryPart(_myOutputFilename) + myFiles[myFileIndex]; string mySearchString(removeExtension(_myOutputFilename) + "logarchive_" ); size_t myPos = myFilename.rfind(mySearchString.c_str() ,0, mySearchString.size()); if (myPos != string::npos) { time_t myTimeStamp = getLastModified(myFilename); if (myTimeStamp > myHighestTimeStamp) { myHighestTimeStamp = myTimeStamp; myNewestIndex = myFileIndex; } myFilesToDelete.push_back(myFileIndex); } } for (vector<std::string>::size_type myFileIndex = 0; myFileIndex != myFilesToDelete.size(); myFileIndex++) { if (myFilesToDelete[myFileIndex] != myNewestIndex ) { deleteFile(getDirectoryPart(_myOutputFilename) + myFiles[myFilesToDelete[myFileIndex]]); } else { _myOldArchiveFilename = myFiles[myNewestIndex]; } } }
bool NotepadFile::baseDirectoryExists() { return getDirectoryPart().exists(); }