System.Security.Util.URLString.GetDirectoryName C# (CSharp) Method

GetDirectoryName() public method

public GetDirectoryName ( ) : String
return String
        public String GetDirectoryName()
        {
            DoDeferredParse();

#if !PLATFORM_UNIX
            if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase ) != 0)
                return null;

            String intermediateDirectory = this.Directory.Replace( '/', '\\' );

            int slashIndex = 0;
            for (int i = intermediateDirectory.Length; i > 0; i--)
            {
               if (intermediateDirectory[i-1] == '\\')
               {
                   slashIndex = i;
                   break;
               }
            }

            String directory = this.Host.Replace( '/', '\\' );

            int directorySlashIndex = directory.IndexOf( '\\' );
            if (directorySlashIndex == -1)
            {
                if (directory.Length != 2 ||
                    !(directory[1] == ':' || directory[1] == '|'))
                {
                    directory = "\\\\" + directory;
                }
            }
            else if (directorySlashIndex > 2 ||
                    (directorySlashIndex == 2 && directory[1] != ':' && directory[1] != '|'))
            {
                directory = "\\\\" + directory;
            }

            directory += "\\";
            
            if (slashIndex > 0)
            {
                directory += intermediateDirectory.Substring( 0, slashIndex );
            }

            return directory;
#else
            if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase) != 0)
                return null;
            
            String directory = this.Directory.ToString();
            int slashIndex = 0;
            for (int i = directory.Length; i > 0; i--)
            {
               if (directory[i-1] == '/')
               {
                   slashIndex = i;
                   break;
               }
            }
            
            if (slashIndex > 0)
            {
                directory = directory.Substring( 0, slashIndex );
            }

            return directory;
#endif // !PLATFORM_UNIX            
        }