コード例 #1
0
        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);
        }
コード例 #2
0
 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);
     }
 }