Given the trouble you've gone to to make `GetFileNames()` return an `IEnumerable<string>`, wouldn't it be better to replace the rest of this method with:
    
    return fileNames.Any(fileName => pathFragments.Any(p => fileName.IndexOf(p, StringComparison.OrdinalIgnoreCase) > -1));