private List<CIHashCodeAndProcessedCount> GetPersistentCount() { //var directory = System.Web.Hosting.HostingEnvironment.MapPath(ConfigurationManager.AppSettings["CrawlerData"]); var directory = ConfigurationManager.AppSettings[CrawlerConfiguration.FolderPath]; if (!Directory.Exists(directory)) { return null; } var dirInfo = new DirectoryInfo(directory); DirectoryInfo[] dirs = dirInfo.GetDirectories(); if (dirs != null && dirs.Any()) { var returnList = new List<CIHashCodeAndProcessedCount>(); foreach (var directoryInfo in dirs) { var CIHashCodeCount = new CIHashCodeAndProcessedCount(); CIHashCodeCount.CrawlHashCode = int.Parse(directoryInfo.Name); try { var directorys = directoryInfo.GetDirectories().Where(m => m.Name != CrawlerConfiguration.ConfigFolderName).OrderByDescending(m => int.Parse(m.Name)); var dirCount = directorys.Count(); if (dirCount == 0) { CIHashCodeCount.Count = 0; } else { var lastIndexFolder = directorys.First(); var maxDirIndex = int.Parse(lastIndexFolder.Name) - 1; CIHashCodeCount.Count = lastIndexFolder.GetFiles().Count() + maxDirIndex * CrawlerConfiguration.FileCountInFolder; } } catch (Exception) { CIHashCodeCount.Count = 0; } returnList.Add(CIHashCodeCount); } return returnList; } else { return null; } }
private List<CIHashCodeAndProcessedCount> GetAllProcessCount() { var processedResult = ConfigurationManager.AppSettings["ProcessedResult"]; var directory = System.Web.Hosting.HostingEnvironment.MapPath(ConfigurationManager.AppSettings["CrawlerData"]); if (!Directory.Exists(directory)) { return null; } var dirInfo = new DirectoryInfo(directory); DirectoryInfo[] dirs = dirInfo.GetDirectories(); if (dirs != null && dirs.Any()) { var returnList = new List<CIHashCodeAndProcessedCount>(); foreach (var directoryInfo in dirs) { var CIHashCodeCount = new CIHashCodeAndProcessedCount(); CIHashCodeCount.CrawlHashCode = int.Parse(directoryInfo.Name); var processedResultDir = directoryInfo.FullName + "\\" + processedResult; if (Directory.Exists(processedResultDir)) { var processInfo = new DirectoryInfo(processedResultDir); FileInfo[] files = processInfo.GetFiles(); CIHashCodeCount.Count = files.Count(); } else { CIHashCodeCount.Count = 0; } returnList.Add(CIHashCodeCount); } return returnList; } else { return null; } }