public static string ToLongPathName(string path)
{
if ( !string.IsNullOrWhiteSpace(path) && Path.IsPathRooted(path) && path.Contains("~"))
{
var sb = new StringBuilder(512);
GetLongPathName(path, sb, sb.Capacity);
return sb.ToString();
}
return path;
}