System.UriParseComponents.ParseWindowsFilePath C# (CSharp) Méthode

ParseWindowsFilePath() private static méthode

private static ParseWindowsFilePath ( ParserState state ) : bool
state ParserState
Résultat bool
		private static bool ParseWindowsFilePath (ParserState state)
		{
			var scheme = state.elements.scheme;

			if (!string.IsNullOrEmpty (scheme) &&
				 scheme != Uri.UriSchemeFile && UriHelper.IsKnownScheme (scheme))
				return state.remaining.Length > 0;

			string part = state.remaining;

			if (part.Length > 0 && (part [0] == '/' || part [0] == '\\'))
				part = part.Substring (1);

			if (part.Length < 2 || part [1] != ':')
				return state.remaining.Length > 0;

			if (!IsAlpha (part [0])) {
				if (state.kind == UriKind.Absolute) {
					state.error = "Invalid URI: The URI scheme is not valid.";
					return false;
				}
				state.elements.isAbsoluteUri = false;
				state.elements.path = part;
				return false;
			}

			if (part.Length > 2 && part [2] != '\\' && part [2] != '/') {
				state.error = "Relative file path is not allowed.";
				return false;
			}

			if (string.IsNullOrEmpty (scheme)) {
				state.elements.scheme = Uri.UriSchemeFile;
				state.elements.delimiter = "://";
			}

			state.elements.path = part.Replace ("\\", "/");

			return false;
		}