public static HashSet <string> CreateTargetsSet(IEnumerable <string> targetSpecifiers, bool recurse) { HashSet <string> targets = new HashSet <string>(StringComparer.OrdinalIgnoreCase); foreach (string specifier in targetSpecifiers) { string normalizedSpecifier = specifier; Uri uri; if (Uri.TryCreate(specifier, UriKind.RelativeOrAbsolute, out uri)) { if (uri.IsAbsoluteUri && (uri.IsFile || uri.IsUnc)) { normalizedSpecifier = uri.LocalPath; } } // Currently, we do not filter on any extensions. var fileSpecifier = new FileSpecifier(normalizedSpecifier, recurse); foreach (string file in fileSpecifier.Files) { targets.Add(file); } } return(targets); }
public override int Run(DumpOptions dumpOptions) { var targets = new List <string>(); foreach (string specifier in dumpOptions.BinaryFileSpecifiers) { if (Directory.Exists(specifier)) { var fileSpecifier = new FileSpecifier(specifier, recurse: dumpOptions.Recurse, filter: "*.dll"); targets.AddRange(fileSpecifier.Files); fileSpecifier = new FileSpecifier(specifier, recurse: dumpOptions.Recurse, filter: "*.exe"); targets.AddRange(fileSpecifier.Files); } else { var fileSpecifier = new FileSpecifier(specifier, recurse: dumpOptions.Recurse); targets.AddRange(fileSpecifier.Files); } } var dumpTask = Task.Run(() => Parallel.ForEach(targets, (target) => DumpFile(target, dumpOptions.Verbose))); dumpTask.Wait(); return(0); }
private static HashSet <string> CreateTargetsSet(TOptions analyzeOptions) { HashSet <string> targets = new HashSet <string>(StringComparer.OrdinalIgnoreCase); foreach (string specifier in analyzeOptions.TargetFileSpecifiers) { // Currently, we do not filter on any extensions. var fileSpecifier = new FileSpecifier(specifier, recurse: analyzeOptions.Recurse, filter: "*"); foreach (string file in fileSpecifier.Files) { targets.Add(file); } } return(targets); }