nodejs 遍历目录

Posted AABBOO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs 遍历目录相关的知识,希望对你有一定的参考价值。

var fs = require("fs"),
    path = require("path");

function walk(dir, callback) {
    fs.readdir(dir, function(err, files) {
        if (err) throw err;
        files.forEach(function(file) {
            var filepath = path.join(dir, file);
            fs.stat(filepath, function(err,stats) {
                if (stats.isDirectory()) {
                    walk(filepath, callback);
                } else if (stats.isFile()) {
                    callback(filepath, stats);
                }
            });
        });
    });
}

import fs from ‘fs‘;
import path from ‘path‘;


function walk(dir) {
  return new Promise((resolve, reject) => {
    fs.readdir(dir, (error, files) => {
      if (error) {
        return reject(error);
      }
      Promise.all(files.map((file) => {
        return new Promise((resolve, reject) => {
          const filepath = path.join(dir, file);
          fs.stat(filepath, (error, stats) => {
            if (error) {
              return reject(error);
            }
            if (stats.isDirectory()) {
              walk(filepath).then(resolve);
            } else if (stats.isFile()) {
              resolve(filepath);
            }
          });
        });
      }))
      .then((foldersContents) => {
        resolve(foldersContents.reduce((all, folderContents) => all.concat(folderContents), []));
      });
    });
  });
}

es6版本

const fs = require(‘fs‘).promises;
const path = require(‘path‘);

async function walk(dir) {
    let files = await fs.readdir(dir);
    files = await Promise.all(files.map(async file => {
        const filePath = path.join(dir, file);
        const stats = await fs.stat(filePath);
        if (stats.isDirectory()) return walk(filePath);
        else if(stats.isFile()) return filePath;
    }));

    return files.reduce((all, folderContents) => all.concat(folderContents), []);
}

 

 

 

 

以上是关于nodejs 遍历目录的主要内容,如果未能解决你的问题,请参考以下文章

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

nodejs 遍历目录

javascript 用于在节点#nodejs #javascript内设置react app的代码片段

Nodejs 学习笔记 - 遍历文件夹,处理txt

Nodejs 学习笔记 - 遍历文件夹,处理txt

NodeJs GraphQL 片段解析器