NodeJS 遍历文件夹修改文件:
#!/usr/bin/env node
'use strict'
var fs = require('fs')
var path = require('path')
function fatal(message) {
console.error(message)
process.exit(1)
}
function processFile(inputFile1) {
fs.readFile(inputFile1, {encoding: 'utf8'}, function(err, data1) {
if (err) return fatal('Cannot read ' + inputFile1 + '\n' + err.message)
var inputFile2 = inputFile1.replace(folder1, folder2)
fs.readFile(inputFile2, {encoding: 'utf8'}, function(err, data2) {
if (err) return fatal('Cannot read ' + inputFile2 + '\n' + err.message)
var left = data2.split('<div><h3>Difficulty:</h3><span')[1]
if (!left) return console.log('none ' + inputFile2)
var txt = data1 + '<div><h3>Difficulty:</h3><span' + left
fs.writeFile(inputFile1, txt, {encoding: 'utf8'}, function(err) {
if (err) fatal('Cannot write ' + inputFile1 + '\n' + err.message)
else console.log('ok ' + inputFile1)
})
})
})
}
function processDirectory() {
var inputDir = folder1
fs.readdir(inputDir, function(err, files) {
if (err) return fatal('Cannot read directory ' + inputDir + '\n' + err.message)
files.forEach(function(file) {
var inputFile1 = path.join(inputDir, file)
if (!fs.existsSync(inputFile1.replace(folder1, folder2))) return ''
processFile(inputFile1)
})
})
}
var folder1 = 'aaa'
var folder2 = 'problems2'
processDirectory()