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);
        }
Exemple #2
0
        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);
        }
Exemple #3
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);
        }