internal FsFileData GetFileData(long length, FileComparisonInfo comparisonInfo)
 {
     Monitor.Enter(_fileData);
     try
     {
         SizeGroupedFileData fileData;
         if (_fileData.ContainsKey(length))
         {
             fileData = _fileData[length];
         }
         else
         {
             fileData = new SizeGroupedFileData(length);
             _fileData.Add(length, fileData);
         }
         return(fileData.GetFile(comparisonInfo));
     }
     finally { Monitor.Exit(_fileData); }
 }
 internal FsFileData GetFileData(long length, MD5Checksum?checksum)
 {
     Monitor.Enter(_fileData);
     try
     {
         SizeGroupedFileData fileData;
         if (_fileData.ContainsKey(length))
         {
             fileData = _fileData[length];
         }
         else
         {
             fileData = new SizeGroupedFileData(length);
             _fileData.Add(length, fileData);
         }
         return(fileData.GetFile(checksum));
     }
     finally { Monitor.Exit(_fileData); }
 }