/// <summary>
        /// Gets if value is valid.
        /// </summary>
        /// <param name="value">Value.</param>
        /// <returns>True or false.</returns>
        public override bool IsValid(object value)
        {
            if (value is string PATH_STRING)
            {
                //null or empty strings dont have any invalid characters
                if (string.IsNullOrWhiteSpace(PATH_STRING))
                {
                    return(true);
                }

                //ensure no invalid characters in path
                if (PATH_STRING.IndexOfAny(INVALID_FILE_NAME_CHARACTERS) >= 0)
                {
                    return(false);
                }

                if (PATH_STRING.EndsWith(" ") || PATH_STRING.EndsWith("."))
                {
                    return(false);
                }

                string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(PATH_STRING);

                if (RESERVED_FILE_NAMES.Any(a => a.Equals(PATH_STRING, StringComparison.OrdinalIgnoreCase) ||
                                            a.Equals(fileNameWithoutExtension, StringComparison.OrdinalIgnoreCase)))
                {
                    return(false);
                }

                return(true);
            }

            //not a string ? valid then ?
            return(true);
        }
        /// <summary>
        /// Gets if value is valid.
        /// </summary>
        /// <param name="value">Value.</param>
        /// <returns>True or false.</returns>
        public override bool IsValid(object value)
        {
            if (value is string PATH_STRING)
            {
                //null or empty strings dont have any invalid characters
                if (string.IsNullOrWhiteSpace(PATH_STRING))
                {
                    return(true);
                }

                if (!AllowWildCard)
                {
                    //path contains wild card or asterisk
                    if (PATH_STRING.IndexOf('*') >= 0)
                    {
                        return(false);
                    }
                }

                //ensure no invalid characters in path
                return(PATH_STRING.IndexOfAny(INVALID_PATH_NAME_CHARACTERS) < 0);
            }

            //not a string ? valid then ?
            return(true);
        }