internal static string CanonicalizePath(string path, bool needFullPath) { if (needFullPath) { string text = Path.GetFullPathInternal(path); if (path.EndsWith(StringExpressionSet.m_directorySeparator.ToString() + ".", StringComparison.Ordinal)) { if (text.EndsWith(StringExpressionSet.m_directorySeparator)) { text += "."; } else { text = text + StringExpressionSet.m_directorySeparator.ToString() + "."; } } path = text; } else if (path.IndexOf('~') != -1) { string text2 = null; StringExpressionSet.GetLongPathName(path, JitHelpers.GetStringHandleOnStack(ref text2)); path = ((text2 != null) ? text2 : path); } if (path.IndexOf(':', 2) != -1) { throw new NotSupportedException(Environment.GetResourceString("Argument_PathFormatNotSupported")); } return(path); }
internal static string CanonicalizePath(string path, bool needFullPath) { if (path.IndexOf('~') != -1) { string s = (string)null; StringExpressionSet.GetLongPathName(path, JitHelpers.GetStringHandleOnStack(ref s)); path = s ?? path; } if (path.IndexOf(':', 2) != -1) { throw new NotSupportedException(Environment.GetResourceString("Argument_PathFormatNotSupported")); } if (!needFullPath) { return(path); } string str1 = Path.GetFullPathInternal(path); string str2 = path; char ch = StringExpressionSet.m_directorySeparator; string str3 = ch.ToString() + "."; int num = 4; if (str2.EndsWith(str3, (StringComparison)num)) { if (str1.EndsWith(StringExpressionSet.m_directorySeparator)) { str1 += "."; } else { string str4 = str1; ch = StringExpressionSet.m_directorySeparator; string @string = ch.ToString(); string str5 = "."; str1 = str4 + @string + str5; } } return(str1); }