C #: Como você criaria um nome de arquivo exclusivo adicionando um número?

Eu gostaria de criar um método que leva um nome de arquivo como umstring ou umFileInfo e adiciona um número incrementado ao nome do arquivo se o arquivo existir. Mas não consigo deixar de pensar em como fazer isso de uma maneira boa.

Por exemplo, se eu tiver esse FileInfo

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

Eu gostaria que o método me desse um novo FileInfo comC: \ arquivo 1.ext E seC: \ file.ext existia eC: \ arquivo 2.ext E seC: \ arquivo 1.ext existia e assim por diante. Algo assim:

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(17)

yourAnswerToTheQuestion