private DirectorySetting CrawlAllLogBaseDirectories(DirectorySetting directory)
        {
            //Trace.WriteLine(directory.Path);

            if (directory != null && directory.Exists)
            {
                if (IsBaseLogDirecory(directory))
                {
                    foreach (string dir in directory.GetDirectories())
                    {
                        //todo:The _ignored files has dual purpose, and if there is folder called all it will be ignored.
                        if (_ignoredFiles.HasFlag(_folderFinder.GetSenseLogBaseTypes(new DirectorySetting(dir))))
                        {//_ignoredFiles != SenseLogBaseTypes.All &&
                            Trace.WriteLine("Ignoring directory=>" + dir);
                            continue;
                        }
                        var    finder    = new LogFileFinder(WriteFile, _fileSystem, _logger, null);
                        string localPath = _fileSystem.Path.Combine(_settings.OutputFolderPath, (_fileSystem.Path.GetFileName(directory.Path)).SanitizeFileName(), _fileSystem.Path.GetFileName(dir) + "");
                        //_fileSystem.EnsureDirectory(localPath);
                        finder.FindFilesInDirectories(new DirectorySetting(dir), _settings.StartDateForLogs, _settings.StopDateForLogs, localPath);
                        Trace.WriteLine("found=>" + dir);
                    }
                }

                var i = 0;
                //FIX:on unstable networks this can return null
                var dirs = _fileSystem.GetDirectories(directory.Path);
                while (dirs == null)
                {
                    dirs = _fileSystem.GetDirectories(directory.Path);
                    i++;
                    if (i > 10)
                    {
                        break;
                    }
                }
                foreach (string dir in dirs)
                {
                    var baseDir = CrawlAllLogBaseDirectories(new DirectorySetting(dir));
                    if (baseDir != null)
                    {
                        return(baseDir);
                    }
                }
            }
            return(null);
        }
Example #2
0
 private void GetFileDirectories(DirectorySetting rootDir, DateTime from, DateTime to, string outputFilePath)
 {
     if (_ignorePaths != null)
     {
         if (!_ignorePaths.Invoke(rootDir.Name))
         {
             Trace.WriteLine($"Igoring=>{rootDir.Name}");
             return;
         }
     }
     GetFiles(rootDir.Path, from, to, outputFilePath);
     _fileWriter(null, null);//dir counter hack.
     foreach (string dir in rootDir.GetDirectories())
     {
         GetFileDirectories(new DirectorySetting(dir), from, to, _fileSystem.Path.Combine(outputFilePath, _fileSystem.Path.GetFileName(dir) + ""));
     }
 }