Node-Daily-Practice icon indicating copy to clipboard operation
Node-Daily-Practice copied to clipboard

Day2 遍历文件

Open barretlee opened this issue 10 years ago • 1 comments

问题:遍历某个目录下所有的 json 文件,将这些文件的文件名和文件目录保存到指定的位置。

后续思考:

  1. 过滤 node_module 文件件下的 JSON 文件
  2. 使用同步方式编写异步代码
  3. 使用 Promise 编程,让程序更加易读
  4. 当文件层级达到一千层的时候如何优化代码

barretlee avatar Apr 19 '15 12:04 barretlee

var fs = require('fs');
var Path = require('path');

var ROOT = "../../../work";
var ret = [];
var output = "./output.json";

function walk(path){
    var files = fs.readdirSync(path);
    files.forEach(function(file){
        var filePath = Path.join(path, file);

        if(/node_module/.test(filePath)) return;

        if(fs.statSync(filePath).isDirectory()){
            walk(filePath);
        } else {
            if(/\.json$/.test(file)){
                console.log('> DEBUG: ' + filePath);
                ret.push({
                    name: file,
                    path: filePath/*,
                    file: fs.readFileSync(filePath)*/
                });
            }
        }
    });
}

walk(ROOT);
fs.writeFileSync(output, JSON.stringify(ret, null, 2));

同步方式写代码。

barretlee avatar Apr 19 '15 12:04 barretlee