/// <summary>
        /// Finds all the restricted folder names relative to a base directory
        /// </summary>
        /// <param name="BaseDir">The base directory to check against</param>
        /// <param name="OtherDir">The file or directory to check</param>
        /// <returns>Array of restricted folder names</returns>
        public static List <RestrictedFolder> FindRestrictedFolders(DirectoryReference BaseDir, DirectoryReference OtherDir)
        {
            List <RestrictedFolder> Folders = new List <RestrictedFolder>();

            if (OtherDir.IsUnderDirectory(BaseDir))
            {
                foreach (Tuple <FileSystemName, RestrictedFolder> Pair in RestrictedFolderNames)
                {
                    if (OtherDir.ContainsName(Pair.Item1, BaseDir.FullName.Length))
                    {
                        Folders.Add(Pair.Item2);
                    }
                }
            }
            return(Folders);
        }
        /// <summary>
        /// Finds all the restricted folder names relative to a base directory
        /// </summary>
        /// <param name="BaseDir">The base directory to check against</param>
        /// <param name="OtherDir">The file or directory to check</param>
        /// <returns>Array of restricted folder names</returns>
        public static List <RestrictedFolder> FindRestrictedFolders(DirectoryReference BaseDir, DirectoryReference OtherDir)
        {
            List <RestrictedFolder> Folders = new List <RestrictedFolder>();

            if (OtherDir.IsUnderDirectory(BaseDir))
            {
                foreach (RestrictedFolder Value in RestrictedFolder.GetValues())
                {
                    string Name = Value.ToString();
                    if (OtherDir.ContainsName(Name, BaseDir.FullName.Length))
                    {
                        Folders.Add(Value);
                    }
                }
            }
            return(Folders);
        }