C # Filepath Recasing

Estoy tratando de escribir una función miembro estática en C # o encontrar una en .NET Framework que vuelva a colocar una ruta de archivo a lo que especifica el sistema de archivos.

Ejemplo:

string filepath = @"C:\temp.txt";
filepath = FileUtility.RecaseFilepath(filepath);

// filepath = C:\Temp.TXT
// Where the real fully qualified filepath in the NTFS volume is C:\Temp.TXT

He probado el siguiente código a continuación y muchas variantes de él y todavía no funciona. Sé que Windows no distingue entre mayúsculas y minúsculas en general, pero necesito pasar estas rutas de archivo a ClearCase, que considera la carcasa de la ruta de archivo, ya que es una aplicación de Unix y Windows.

public static string GetProperFilePathCapitalization(string filepath)
{
    string result = "";

    try
    {
        result = Path.GetFullPath(filepath);
        DirectoryInfo dir = new DirectoryInfo(Path.GetDirectoryName(result));
        FileInfo[] fi, = dir.GetFiles(Path.GetFileName(result));
        if (fi.Length > 0)
        {
            result = fi[0].FullName;
        }
    }
    catch (Exception)
    {
        result = filepath;
    }

    return result;
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta