Esempio n. 1
0
        private AnalysisResult AnalyseDirectory(string path, AnalysisOptions options)
        {
            var analysisResult = new AnalysisResult();
            UpdateStatus("Analysing directory:", path, options);

            analysisResult.Path = path;
            foreach (var item in Directory.EnumerateFiles(path))
            {
                var analysis = AnalyseFile(item, options);
                analysisResult.Add(analysis);
            }

            if (!options.Recurse) return analysisResult;

            foreach (var item in Directory.EnumerateDirectories(path))
            {
                if (!options.ShouldScanDirectory(item))
                {
                    UpdateStatus("Skipping directory:", item, options);
                    continue;
                }
                var directoryAnalysis = AnalyseDirectory(item, options);
                analysisResult.Merge(directoryAnalysis);
            }

            return analysisResult;
        }