C #: ¿Cómo crearías un nombre de archivo único al agregar un número?

Me gustaría crear un método que tome un nombre de archivo comostring o unFileInfo y agrega un número incrementado al nombre de archivo si el archivo existe. Pero no puedo entender cómo hacer esto de una buena manera.

Por ejemplo, si tengo este FileInfo

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

Me gustaría el método para darme un nuevo FileInfo conC: \ file 1.ext SiC: \ archivo.ext existió, yC: \ archivo 2.ext SiC: \ file 1.ext existió y así sucesivamente. Algo como esto:

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.
}

Respuestas a la pregunta(16)

Su respuesta a la pregunta