コード例 #1
0
ファイル: StdOutputRedirector.cpp プロジェクト: artcom/asl
 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];
         }
     }
 }
コード例 #2
0
bool NotepadFile::baseDirectoryExists()
{
	return getDirectoryPart().exists();
}