private static void DeleteAndWaitForFileDelete(string fileName)
{
try
{
var originalFileCreationTime = (new FileInfo(fileName)).CreationTime;
if (DeleteOldArchiveFile(fileName) && File.Exists(fileName))
{
FileInfo currentFileInfo;
for (int i = 0; i < 120; ++i)
{
Thread.Sleep(100);
currentFileInfo = new FileInfo(fileName);
if (!currentFileInfo.Exists || currentFileInfo.CreationTime != originalFileCreationTime)
return;
}
InternalLogger.Warn("Timeout while deleting old archive file: '{0}'.", fileName);
}
}
catch (Exception exception)
{
InternalLogger.Warn(exception, "Failed to delete old archive file: '{0}'.", fileName);
if (exception.MustBeRethrown())
{
throw;
}
}
}