private void RollArchivesForward(string fileName, string pattern, int archiveNumber)
{
if (ShouldDeleteOldArchives() && archiveNumber >= this.MaxArchiveFiles)
{
DeleteOldArchiveFile(fileName);
return;
}
if (!File.Exists(fileName))
{
return;
}
string newFileName = ReplaceNumberPattern(pattern, archiveNumber);
RollArchivesForward(newFileName, pattern, archiveNumber + 1);
if (archiveNumber == 0)
ArchiveFile(fileName, newFileName);
else
{
InternalLogger.Info("Roll archive {0} to {1}", fileName, newFileName);
File.Move(fileName, newFileName);
}
}