GetLongPathName() private method

private GetLongPathName ( String path ) : String
path String
return String
Example #1
0
 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);
        }