C #: Jak utworzyłbyś unikalną nazwę pliku, dodając numer?

Chciałbym utworzyć metodę, która przyjmuje nazwę pliku jakostring lub aFileInfo i dodaje zwiększoną liczbę do nazwy pliku, jeśli plik istnieje. Ale nie mogę oprzeć mojej głowy, jak to zrobić w dobry sposób.

Na przykład, jeśli mam to FileInfo

var file = new FileInfo(@"C:\file.ext");

Chciałbym, aby metoda dała mi nowy plik FileInfoC: plik 1.ext JeśliC: plik.ext istniało iC: plik 2.ext JeśliC: plik 1.ext istniało i tak dalej. Coś takiego:

public FileInfo MakeUnique(FileInfo fileInfo)
{
    if(fileInfo == null)
        throw new ArgumentNullException("fileInfo");
    if(!fileInfo.Exists)
        return fileInfo;

    // Somehow construct new filename from the one we have, test it, 
    // then do it again if necessary.
}

questionAnswers(16)

yourAnswerToTheQuestion