'use strict'; var fs = require('fs'); var BUF_SIZE = 16 * 1024; /* Compare two files by content. */ function equalFiles(pathA, pathB) { var statA = fs.lstatSync(pathA); var statB = fs.lstatSync(pathB); if (statA.size !== statB.size) { return false; } var fdA = fs.openSync(pathA, 'r'); var fdB = fs.openSync(pathB, 'r'); var bufA = new Buffer(BUF_SIZE); var bufB = new Buffer(BUF_SIZE); var readA = 1; var readB = 1; while (readA > 0) { readA = fs.readSync(fdA, bufA, 0, bufA.length, null); readB = fs.readSync(fdB, bufB, 0, bufB.length, null); if (readA !== readB) { return false; } for (var i = 0; i < readA; i++) { if (bufA[i] !== bufB[i]) { return false; } } } fs.closeSync(fdA); fs.closeSync(fdB); return true; } module.exports.equalFiles = equalFiles;