nodejs的FS或path如何获取某文件夹下的所有文件的文件名呢。

该文件夹也包含有其他文件夹,其他文件夹下的文件名也想读出来,望大神赐教~~

阅读 19.5k
2 个回答

我本地测过了是可以的,运行环境是node v6,返回的数组fileNames是递归目录下文件找到的名字,如果有疑问,留言交流吧。

let  fs = require('fs');
let  join = require('path').join;
/**
 * 
 * @param startPath  起始目录文件夹路径
 * @returns {Array}
 */
function findSync(startPath) {
    let result=[];
    function finder(path) {
        let files=fs.readdirSync(path);
        files.forEach((val,index) => {
            let fPath=join(path,val);
            let stats=fs.statSync(fPath);
            if(stats.isDirectory()) finder(fPath);
            if(stats.isFile()) result.push(fPath);
        });

    }
    finder(startPath);
    return result;
}
let fileNames=findSync('./');

读取文件夹再判断文件夹下的是文件夹还是文件,文件夹的话再继续读取,递归一下就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏