public void AddBaseDirectory(string directory) { if (!DirectoryExists(directory)) { throw new DirectoryNotFoundException(ErrorMessages.InvalidDirectory.Format(directory)); } if (AlreadyHasDirectory(directory)) { throw new Exception(ErrorMessages.DuplicateBaseDirectory.Format(directory)); } var info = new DirectoryInfo(directory); var newEntry = new BaseDirectoryEntry(_baseDirectories.Count + 1, info.FullName); _baseDirectories.Add(newEntry.Number, newEntry); }
private void AddFileEntries(BaseDirectoryEntry baseDirectoryEntry, string fullyQualifiedFileName) { if (!UniqueFiles.ContainsKey(fullyQualifiedFileName)) { var fileEntry = new FileEntry(baseDirectoryEntry.Number, fullyQualifiedFileName); FileInfoHandler info = fileEntry.Info; long length = info.Length; if (length > int.MaxValue || length == 0L || info.Name.StartsWith(".")) { return; } UniqueFiles.Add(fullyQualifiedFileName, fileEntry); var lengthList = FilesByLength.ContainsKey(length) ? FilesByLength[length] : null; if (lengthList == null) { lengthList = new List <FileEntry>(); FilesByLength.Add(length, lengthList); } FilesByLength[length].Add(fileEntry); } }