js async异步遍历文件夹读取文件内容

2019-09-26  本文已影响0人  景阳冈大虫在此

npm install async

var async = require('async');
var fs = require('fs');

process.chdir('file'); // 进入要遍历的文件夹
var concatenation = '';
var dirName = '.';
var dirContent = fs.readdirSync(dirName);

async.filter(dirContent, isFilename, function(filenames) {
    async.forEachSeries(filenames, readAndConcat, onComplete);
});
function isFilename(filename, callback) {
    // 不读取.开头的隐藏文件
    if (filename[0] === '.') {
        return;
    }
    console.log(filename);
    fs.stat(filename, function(err, stats) {
        if (err) throw err;
        callback(stats.isFile() && [filename]);
    });
}
function readAndConcat(filename, callback) {
    fs.readFile(filename, 'utf8', function(err, fileContents) {
        if (err) return callback(err);
        concatenation += fileContents;
        callback();
    });
}

function onComplete(err) {
    if (err) throw err;
    console.log(concatenation);
}

上一篇下一篇

猜你喜欢

热点阅读