예제 #1
0
            // ******************************************************************
            // *																*
            // *					        Constructors					    *
            // *																*
            // ******************************************************************

            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="wildcardString">
            /// A string that specifies a pattern to search for. This argument can
            /// include the standard dos wildcards <i>'*'</i> and/or <i>'?'</i>.
            /// </param>
            public Entry(string wildcardString)
            {
                // Store arguments into members
                m_compareMode    = CreateCompareMode(wildcardString);
                m_wildcardString = wildcardString;
                m_wildcardChunks = m_compareMode == WildcardCompareModes.IsComplex ?
                                   CreateWildcardChunks(wildcardString) :
                                   null;
            }
예제 #2
0
        // ******************************************************************
        // *																*
        // *					      Constructors					        *
        // *																*
        // ******************************************************************

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="wildcardString">
        /// A string that specifies a pattern to search for. This argument can
        /// include the standard dos wildcards <i>'*'</i> and/or <i>'?'</i>.
        /// Multiple patterns can be specified by using a semicolon separator
        /// (e.g. "*.exe;*.bat")
        /// </param>
        /// <param name="caseSensitive">
        /// A bool that indicates if the test should be case sensitive or not
        /// </param>
        public WildcardExpression(
            string wildcardString,
            bool caseSensitive)
        {
            // Evaluate wildcard expression
            m_compareMode   = CreateCompareMode(wildcardString);
            m_wildcardOrig  = wildcardString;
            m_wildcardClean = wildcardString.CleanUp();
            m_caseSensitive = caseSensitive;

            // Check casing
            if (!m_caseSensitive)
            {
                m_wildcardClean = m_wildcardClean.ToLower();
            }

            // Check if we have a non-trivial expression
            if (m_compareMode == WildcardCompareModes.IsPlainString ||
                m_compareMode == WildcardCompareModes.IsComplex)
            {
                // Entries are required to evaluate this expression
                string[] expressions = Split(m_wildcardClean);

                // Create an entry for each expression
                if (expressions.Length != 0)
                {
                    // Create entries
                    m_entries = new Entry[expressions.Length];
                    for (int i = 0; i < expressions.Length; i++)
                    {
                        m_entries[i] = new Entry(expressions[i]);
                    }
                }
                else
                {
                    // Dummy expression
                    m_entries     = null;
                    m_compareMode = WildcardCompareModes.IsEmpty;
                }
            }
            else
            {
                // Entries are not required
                m_entries = null;
            }
        }