private static string GetCaseSensitiveFileName(string fileName)
{
if (fileName == null) return fileName;
if (Directory.Exists(fileName) || File.Exists(fileName))
{
try
{
StringBuilder sb = new StringBuilder(1024);
GetShortPathName(fileName.ToUpper(), sb, 1024);
GetLongPathName(sb.ToString(), sb, 1024);
var fn = sb.ToString();
return string.IsNullOrWhiteSpace(fn) ? fileName : fn;
}
catch { }
}
return fileName;
}