private bool CheckFilenameWithFilters(string filePath)
        {
            //filePath = filePath.ToLower();
            var fileName = FilenameFiltersIncludeExtension ? filePath :
                           Path.GetDirectoryName(filePath) + '\\' + Path.GetFileNameWithoutExtension(filePath);

            var fileNameMatch = false;
            var fileExtMatch  = false;

            if (FilenameFilters.Length == 0 ||
                FilenameFilters.Any(filter => fileName.Contains(filter, StringComparison.CurrentCultureIgnoreCase)))
            {
                fileNameMatch = true;
            }

            if (FilenameExcludeFilters.Length > 0 &&
                FilenameExcludeFilters.Any(x => fileName.Contains(x, StringComparison.CurrentCultureIgnoreCase)))
            {
                fileNameMatch = false;
            }

            if (!fileNameMatch)
            {
                return(false);
            }

            var extension = Path.GetExtension(filePath);

            if (extension != null)
            {
                var fileExt = extension.ToLower();

                if (ExtensionFilters.Length == 0)
                {
                    fileExtMatch = true;
                }
                else
                {
                    if (ExtensionFilters.Any(filter => fileExt.Contains(filter)))
                    {
                        fileExtMatch = true;
                    }
                }
            }
            return(fileExtMatch);
        }
예제 #2
0
            public ExtensionFilters Combine(ExtensionFilters other)
            {
                // TODO: improve: do not duplicate name, combines extensions instead
                if (other != this)
                {
                    int      total    = m_datas.Length + other.m_datas.Length;
                    int      i        = 0;
                    String[] newDatas = new String[total];

                    while (i < m_datas.Length)
                    {
                        newDatas[i] = m_datas[i];
                        ++i;
                    }
                    while (i < other.m_datas.Length)
                    {
                        newDatas[i] = other.m_datas[i];
                        ++i;
                    }
                    m_datas = newDatas;
                }
                return(this);
            }