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); }
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); }