Example #1
0
 /// <summary>
 /// Returns true if the path uses the device syntax (\\.\)
 /// </summary>
 internal static bool IsDevice(StringBuilder path)
 {
     return path != null && path.StartsWithOrdinal(DevicePathPrefix);
 }
Example #2
0
 /// <summary>
 /// Returns true if the path uses the extended UNC syntax (\\?\UNC\)
 /// </summary>
 internal static bool IsExtendedUnc(StringBuilder path)
 {
     return path != null && path.StartsWithOrdinal(UncExtendedPathPrefix);
 }
Example #3
0
        /// <summary>
        /// Adds the extended path prefix (\\?\) if not already present and if the path is not relative or a device (\\.\).
        /// </summary>
        internal static void EnsureExtendedPrefix(StringBuilder path)
        {
            if (IsExtended(path) || IsRelative(path) || IsDevice(path))
                return;

            // Given \\server\share in longpath becomes \\?\UNC\server\share
            if (path.StartsWithOrdinal(UncPathPrefix))
            {
                path.Insert(2, PathInternal.UncExtendedPrefixToInsert);
                return;
            }

            path.Insert(0, PathInternal.ExtendedPathPrefix);
        }