private static int ExtractArchiveNumberFromFileName(string archiveFileName)
{
archiveFileName = Path.GetFileName(archiveFileName);
int lastDotIdx = archiveFileName.LastIndexOf('.');
if (lastDotIdx == -1)
return 0;
int previousToLastDotIdx = archiveFileName.LastIndexOf('.', lastDotIdx - 1);
string numberPart = previousToLastDotIdx == -1 ? archiveFileName.Substring(lastDotIdx + 1) : archiveFileName.Substring(previousToLastDotIdx + 1, lastDotIdx - previousToLastDotIdx - 1);
int archiveNumber;
return Int32.TryParse(numberPart, out archiveNumber) ? archiveNumber : 0;
}
}