/// <summary> /// Compares two files using binary or text comparison methods. /// </summary> /// <param name="fileA"></param> /// <param name="fileB"></param> /// <param name="a"></param> /// <param name="b"></param> /// <param name="args"></param> /// <param name="progress"></param> private DiffBinaryTextResults GetFileLines(IFileInfo fileA , IFileInfo fileB , TextBinaryDiffArgs args , IDiffProgress progress) { // Nothing to compare if both files do not exist if (fileA.FileExists == false && fileB.FileExists == false) { return(new DiffBinaryTextResults(CompareType.Text, new FileContentInfo(), new FileContentInfo())); } if (args.CompareType == CompareType.Binary || (args.IsAuto && fileA.Is == FileType.Binary || fileB.Is == FileType.Binary)) { return(GetBinaryFileLines(fileA, fileB, args, progress)); } FileContentInfo af = null, bf = null; if (fileA.FileExists) { af = AsyncPump.Run(() => FileEx.GetFileTextAsync(fileA.FullName)); } else { af = new FileContentInfo(); } if (fileB.FileExists) { bf = AsyncPump.Run(() => FileEx.GetFileTextAsync(fileB.FullName)); } else { bf = new FileContentInfo(); } return(new DiffBinaryTextResults(CompareType.Text, af, bf)); }