5 instantiations of FileMatcher
Microsoft.Build (1)
Evaluation\Context\EvaluationContext.cs (1)
71FileMatcher = new FileMatcher(FileSystem, FileEntryExpansionCache);
Microsoft.Build.Framework (1)
Utilities\FileMatcher.cs (1)
90public static FileMatcher Default = new FileMatcher(FileSystems.Default, null);
Microsoft.Build.Framework.UnitTests (3)
FileMatcher_Tests.cs (3)
132var fileMatcherWithCache = new FileMatcher(FileSystems.Default, new ConcurrentDictionary<string, IReadOnlyList<string>>()); 2422var fileMatcher = new FileMatcher(new FileSystemAdapter(mockFileSystem), mockFileSystem.GetAccessibleFileSystemEntries); 2492private static FileMatcher loopBackFileMatcher = new FileMatcher(FileSystems.Default, GetFileSystemEntriesLoopBack);
135 references to FileMatcher
Microsoft.Build (37)
BackEnd\BuildManager\BuildManager.cs (1)
3019FileMatcher.ClearCaches();
Construction\ProjectItemElement.cs (1)
349_includeHasWildcards = (Include != null) && FileMatcher.HasWildcards(_include);
Definition\BuiltInMetadata.cs (2)
107FileMatcher.Result match = FileMatcher.Default.FileMatch(evaluatedIncludeBeforeWildcardExpansion, evaluatedInclude);
Definition\Project.cs (7)
1707var hasCharactersThatRequireSplitting = FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(itemElement.Include); 3103FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(unevaluatedInclude) || 3442var hasCharactersThatRequireSplitting = FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(itemElement.Include); 3475if (!FileMatcher.HasWildcards(existingIncludePiece)) 3480FileMatcher.Result match = FileMatcher.Default.FileMatch(existingIncludePiece, unevaluatedInclude); 3863if (FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(unevaluatedInclude))
Definition\ProjectItem.cs (1)
700if (_xml.Count == 0 /* no metadata */ && _project.IsSuitableExistingItemXml(_xml, name, null /* no metadata */) && !FileMatcher.HasWildcardsSemicolonItemOrPropertyReferences(name))
Evaluation\Context\EvaluationContext.cs (1)
56internal FileMatcher FileMatcher { get; }
Evaluation\Evaluator.cs (1)
1589bool containsWildcards = FileMatcher.HasWildcards(importElement.Project);
Evaluation\ItemSpec.cs (1)
228if (!FileMatcher.HasWildcards(splitEscaped))
Evaluation\LazyItemEvaluator.cs (1)
50protected FileMatcher FileMatcher => EvaluationContext.FileMatcher;
Evaluation\LazyItemEvaluator.LazyItemOperation.cs (1)
54protected FileMatcher FileMatcher => _lazyEvaluator.FileMatcher;
FileSystem\DirectoryCacheFileSystemWrapper.cs (2)
86return FileMatcher.IsAllFilesWildcard(searchPattern) || FileMatcher.IsMatch(fileName, searchPattern);
Globbing\MSBuildGlob.cs (4)
128FileMatcher.GetRegexMatchInfo( 185FileMatcher.Default.GetFileSpecInfo( 202string matchFileExpression = FileMatcher.RegularExpressionFromFileSpec(fixedDirectoryPart, wildcardDirectoryPart, filenamePart); 211RegexOptions regexOptions = FileMatcher.DefaultRegexOptions;
Utilities\EngineFileUtilities.cs (10)
70fileMatcher: FileMatcher.Default, 106FileMatcher? fileMatcher = null, 121fileMatcher ?? FileMatcher.Default, 133if (!FileMatcher.HasWildcards(filespecEscaped)) 178FileMatcher fileMatcher, 219FileMatcher.Default.GetFileSpecInfo(filespecUnescaped, out string directoryPart, out string wildcardPart, out string filenamePart, out bool needsRecursion, out bool isLegalFileSpec); 222bool logDriveEnumeratingWildcard = FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart); 229FileMatcher.Default.GetFileSpecInfo(excludeSpec, out directoryPart, out wildcardPart, out filenamePart, out needsRecursion, out isLegalFileSpec); 230bool logDriveEnumeratingWildcardFromExludeSpec = FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart); 561var hasBothWildcardsAndEscapedWildcards = FileMatcher.HasWildcards(exclude) && EscapingUtilities.ContainsEscapedWildcards(exclude);
Utilities\FileSpecMatchTester.cs (4)
91if (!FileMatcher.IsMatch(filename, _filenamePattern)) 108FileMatcher.Default.SplitFileSpec( 122if (string.IsNullOrEmpty(fixedDirPart) && FileMatcher.IsRecursiveDirectoryMatch(wildcardDirectoryPart)) 139FileMatcher.Default.GetFileSpecInfoWithRegexObject(
Microsoft.Build.Engine.UnitTests (1)
Evaluation\ItemEvaluation_Tests.cs (1)
697FileMatcher.ClearCaches();
Microsoft.Build.Framework (2)
Utilities\FileMatcher.cs (2)
90public static FileMatcher Default = new FileMatcher(FileSystems.Default, null); 578fixedDirectoryPart = FileMatcher.GetLongPathName(fixedDirectoryPart, _getFileSystemEntries);
Microsoft.Build.Framework.UnitTests (77)
FileMatcher_Tests.cs (77)
67string[] fileMatches = FileMatcher.Default.GetFiles(testFolder.Path, pattern).FileList; 83string[] fileMatches = FileMatcher.Default.GetFiles(testFolder.Path, "**").FileList; 110void VerifyImpl(FileMatcher fileMatcher, string include, string[] excludes, bool shouldHaveNoMatches = false, string customMessage = null) 132var fileMatcherWithCache = new FileMatcher(FileSystems.Default, new ConcurrentDictionary<string, IReadOnlyList<string>>()); 137VerifyImpl(FileMatcher.Default, include, excludes, shouldHaveNoMatches, customMessage); 592Assert.Equal(input.Item3, FileMatcher.IsMatch(input.Item1, input.Item2)); 593Assert.Equal(input.Item3, FileMatcher.IsMatch(input.Item1.ToUpperInvariant(), input.Item2)); 594Assert.Equal(input.Item3, FileMatcher.IsMatch(input.Item1, input.Item2.ToUpperInvariant())); 610private static IReadOnlyList<string> GetFileSystemEntries(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 776FileMatcher.Normalize(inputString).ShouldBe(expectedString); 828string longPath = FileMatcher.GetLongPathName( 830new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 844string longPath = FileMatcher.GetLongPathName( 846new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 860string longPath = FileMatcher.GetLongPathName( 862new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 876string longPath = FileMatcher.GetLongPathName( 878new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 892string longPath = FileMatcher.GetLongPathName( 894new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 908string longPath = FileMatcher.GetLongPathName( 910new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 924string longPath = FileMatcher.GetLongPathName( 926new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 940string longPath = FileMatcher.GetLongPathName( 942new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 957string longPath = FileMatcher.GetLongPathName( 959new FileMatcher.GetFileSystemEntries(FileMatcherTest.GetFileSystemEntries)); 1256files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1268var files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1288var files = FileMatcher.Default.GetFiles(workingPath, offendingPattern).FileList; 1313var files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs").FileList; 1317files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs", new List<string> { "a.cs" }).FileList; 1321files = FileMatcher.Default.GetFiles(testProject.TestRoot, "**/*.cs", new List<string> { "a.cs", "c.cs" }).FileList; 1328FileMatcher.ClearCaches(); 1356FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart).ShouldBeTrue(); 1380(string[] fileList, FileMatcher.SearchAction action, string excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1384action.ShouldBe(FileMatcher.SearchAction.FailOnDriveEnumeratingWildcard); 1389(fileList, action, excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1394action.ShouldBe(FileMatcher.SearchAction.FailOnDriveEnumeratingWildcard); 1421(_, FileMatcher.SearchAction action, string excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1425action.ShouldBe(FileMatcher.SearchAction.LogDriveEnumeratingWildcard); 1429(_, action, excludeFileSpec, _) = FileMatcher.Default.GetFiles( 1434action.ShouldBe(FileMatcher.SearchAction.LogDriveEnumeratingWildcard); 1465FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart).ShouldBeFalse(); 1471strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\" : "/").ToArray(); 1475strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\" : "/").ToArray(); 1479strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1483strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1487strings = FileMatcher.RemoveProjectDirectory(strings, NativeMethodsShared.IsWindows ? "c:\\directory" : "/directory").ToArray(); 1493strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine").ToArray(); 1497strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine").ToArray(); 1501strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1505strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1509strings = FileMatcher.RemoveProjectDirectory(strings, "\\Machine\\directory").ToArray(); 1973FileMatcher.Default.GetFileSpecInfo( 1981? FileMatcher.RegularExpressionFromFileSpec(fixedDirectoryPart, wildcardDirectoryPart, filenamePart) 2091if (normalizedCandidate.IndexOfAny(FileMatcher.directorySeparatorCharacters) != -1) 2106files.Add(FileMatcher.Normalize(candidate)); 2115files.Add(FileMatcher.Normalize(candidate)); 2129files.Add(FileMatcher.Normalize(candidate)); 2133else if (!FileMatcher.HasWildcards(pattern)) 2169int nextSlash = normalizedCandidate.IndexOfAny(FileMatcher.directorySeparatorCharacters, path.Length + 1); 2184directories.Add(FileMatcher.Normalize(match)); 2195directories.Add(FileMatcher.Normalize(match)); 2216internal IReadOnlyList<string> GetAccessibleFileSystemEntries(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 2221if (entityType == FileMatcher.FileSystemEntity.Files || entityType == FileMatcher.FileSystemEntity.FilesAndDirectories) 2228if (entityType == FileMatcher.FileSystemEntity.Directories || entityType == FileMatcher.FileSystemEntity.FilesAndDirectories) 2422var fileMatcher = new FileMatcher(new FileSystemAdapter(mockFileSystem), mockFileSystem.GetAccessibleFileSystemEntries); 2483private static IReadOnlyList<string> GetFileSystemEntriesLoopBack(FileMatcher.FileSystemEntity entityType, string path, string pattern, string projectDirectory, bool stripProjectDirectory) 2492private static FileMatcher loopBackFileMatcher = new FileMatcher(FileSystems.Default, GetFileSystemEntriesLoopBack); 2624FileMatcher.Result match = FileMatcher.Default.FileMatch(filespec, fileToMatch);
Microsoft.Build.Tasks.Core (15)
AssemblyDependency\TaskItemSpecFilenameComparer.cs (2)
58int xFilenameStart = xItemSpec.LastIndexOfAny(FileMatcher.directorySeparatorCharacters); 64int yFilenameStart = yItemSpec.LastIndexOfAny(FileMatcher.directorySeparatorCharacters);
Copy.cs (1)
859(string[] filesInFolder, _, _, string globFailure) = FileMatcher.Default.GetFiles(src, "**");
CreateItem.cs (6)
156if (FileMatcher.HasWildcards(i.ItemSpec)) 158FileMatcher.Default.GetFileSpecInfo(i.ItemSpec, out string directoryPart, out string wildcardPart, out string filenamePart, out bool needsRecursion, out bool isLegalFileSpec); 159bool logDriveEnumeratingWildcard = FileMatcher.IsDriveEnumeratingWildcardPattern(directoryPart, wildcardPart); 181(files, _, _, string? globFailure) = FileMatcher.Default.GetFiles(null /* use current directory */, i.ItemSpec); 192FileMatcher.Result match = FileMatcher.Default.FileMatch(i.ItemSpec, file);
Unzip.cs (6)
307result = _includePatterns.All(pattern => !FileMatcher.IsMatch(FileMatcher.Normalize(zipArchiveEntry.FullName), pattern)); 312result |= _excludePatterns.Any(pattern => FileMatcher.IsMatch(FileMatcher.Normalize(zipArchiveEntry.FullName), pattern)); 343if (FileMatcher.HasPropertyOrItemReferences(pattern)) 355? pattern.Split([';'], StringSplitOptions.RemoveEmptyEntries).Select(FileMatcher.Normalize).ToArray()
Microsoft.Build.Utilities.Core (3)
TrackedDependencies\TrackedDependencies.cs (3)
36if (FileMatcher.HasWildcards(item.ItemSpec)) 45if (!FileMatcher.HasWildcards(directoryName) && FileSystems.Default.DirectoryExists(directoryName)) 51(files, _, _, string? globFailure) = FileMatcher.Default.GetFiles(null, item.ItemSpec);