Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <copyright file="SyntaxCheck.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using System.Security.Permissions;
/// <internalonly/>
/// <devdoc>
/// SyntaxCheck
/// Helper class to check for path and machine name syntax.
/// </devdoc>
[HostProtection(SharedState = true)]
public static class SyntaxCheck {
/// <devdoc>
/// Checks the syntax of the machine name (no "\" anywhere in it).
/// </devdoc>
/// <internalonly/>
public static bool CheckMachineName(string value) {
if (value == null)
return false;
value = value.Trim();
if (value.Equals(String.Empty))
return false;
// Machine names shouldn't contain any "\"
return (value.IndexOf('\\') == -1);
}
/// <devdoc>
/// Checks the syntax of the path (must start with "\\").
/// </devdoc>
/// <internalonly/>
public static bool CheckPath(string value) {
if (value == null)
return false;
value = value.Trim();
if (value.Equals(String.Empty))
return false;
// Path names should start with "\\"
return value.StartsWith("\\\\");
}
/// <devdoc>
/// Checks the syntax of the path (must start with "\" or drive letter "C:").
/// NOTE: These denote a file or directory path!!
///
/// </devdoc>
/// <internalonly/>
public static bool CheckRootedPath(string value) {
if (value == null)
return false;
value = value.Trim();
if (value.Equals(String.Empty))
return false;
// Is it rooted?
return Path.IsPathRooted(value);
}
}
}