示例#1
0
 private void AddWithAction(IDictionary <string, InternalCompareInfo> dictionary, IEnumerable <FileSystemInfo> files, Action <InternalCompareInfo> action)
 {
     foreach (FileSystemInfo file in files)
     {
         InternalCompareInfo info = GetOrAdd(dictionary, file.Name);
         action(info);
     }
 }
示例#2
0
        private void AddFileResult(string relativeDirectory, InternalCompareInfo internalInfo)
        {
            FileCompareInfo result = ToFileCompareInfo(relativeDirectory, internalInfo);

            if (internalInfo.InSource && internalInfo.InTarget)
            {
                result.Status = FileComparer.Compare(result.SourcePath, result.TargetPath);
            }
            this.results.Add(result);
        }
示例#3
0
        private InternalCompareInfo GetOrAdd(IDictionary <string, InternalCompareInfo> dictionary, string name)
        {
            InternalCompareInfo info;

            if (!dictionary.TryGetValue(name, out info))
            {
                info = new InternalCompareInfo {
                    Name = name
                };
                dictionary.Add(name, info);
            }
            return(info);
        }
示例#4
0
        private FileCompareInfo ToFileCompareInfo(string relativeDirectory, InternalCompareInfo internalInfo)
        {
            string relativePath = Path.Combine(relativeDirectory, internalInfo.Name);
            var    result       = new FileCompareInfo
            {
                Name         = internalInfo.Name,
                RelativePath = relativePath
            };

            result.SourcePath = Path.Combine(sourceBaseDirectory, relativePath);
            result.TargetPath = Path.Combine(targetBaseDirectory, relativePath);
            if (!internalInfo.InSource)
            {
                result.Status = FileCompareStatus.TargetOnly;
            }
            else if (!internalInfo.InTarget)
            {
                result.Status = FileCompareStatus.SourceOnly;
            }
            return(result);
        }