Files
svn/tech/tools/sortTrack.js
2025-08-04 10:46:00 +08:00

76 lines
1.7 KiB
JavaScript

const fs = require('fs');
const path = require('path');
let Converter = {
sourcePath: __dirname + '/' + process.argv[2],
destPath: __dirname + '/' + process.argv[3],
start() {
this.traversalDir(this.sourcePath, this.destPath);
},
// 遍历文件夹找到
traversalDir: function(srcDir, destDir) {
let files = [];
if ( fs.existsSync(srcDir) ) { //判断给定的路径是否存在
files = fs.readdirSync(srcDir); //返回文件和子目录的数组
for (let i = 0, len = files.length; i < len; i++) {
let file = files[i];
let srcFile = path.join(srcDir, file);
let destFile = path.join(destDir, file);
let baseName = path.basename(srcFile, '.json');
let names = baseName.split('_');
if (names[0] !== 'track') {
continue;
}
fs.readFile(srcFile, (err, data) => {
if (err) {
console.error(err);
return;
}
console.log('Success to read file: ' +srcFile);
let strTrack = this.convertTrack(data);
if (!strTrack || strTrack.length <= 0) {
console.log('track is invalid: ' +srcFile);
return;
}
fs.writeFile(destFile, strTrack, (err) => {
if (err) {
console.error(err);
return;
}
console.log('Success to write file: ' +destFile);
});
});
}
}
return files;
},
convertTrack(data) {
let str = '';
try {
let track = JSON.parse(data);
track.sort(function(a, b) {
return b.enterTime - a.enterTime;
});
str = JSON.stringify(track);
} catch(e) {
console.error('convertTrack: error to sort track');
}
return str;
},
};
module.exports = Converter;
Converter.start();