我正在尝试返回一个等效文件数组,其中内部数组包含最后一个修改过的文件作为第0个索引。我能够通过存储mtime属性来使它工作,但我很好奇为什么我不能将mtimeMs属性的值存储在数组中的fileStats对象上,因为它的数据类型是数字。
我的代码在
下面var walk = require('walk'), fs = require('fs'), walker;
var path = require('path');
// console.log(walk.walk);
walker = walk.walk(path.join(__dirname, "/testAll"));
let fileData = {};
let results = [];
walker.on('file', function (root, fileStats, next) {
// console.log('root is: ', root, 'fileStats is: ', fileStats, 'next is: ', next);
fs.readFile(path.join(root, fileStats.name), 'utf8', function (err, data) {
if (fileData[data]) {
fileData[data][1] < fileStats.mtimeMS ?
results.push([fileStats.name, fileData[data][0]]) :
results.push([fileData[data][0], fileStats.name])
} else {
fileData[data] = [fileStats.name, fileStats.mtimeMS]; //undefined is added as the 1st index of this array
}
next();
});
});
walker.on('end', () => {
console.log(results);
})