如何从父目录和所有子目录中获取文件?

Posted

技术标签:

【中文标题】如何从父目录和所有子目录中获取文件?【英文标题】:How can I grab files from inside a parent directory and all subdirectories inside? 【发布时间】:2019-08-14 15:04:01 【问题描述】:

我想为我的 discord.js 命令处理程序获取父目录和所有子目录中的所有 javascript 文件。我如何做到这一点?

我有一个工作代码块,它已经从父目录中获取了所有 .js 文件,但所有子目录都被单独留下。

const botConfig = require('./config/nvdconfig.json');
const Discord = require('discord.js');
const fs = require('fs');

const prefix = botConfig.prefix;
// nvdColor: #45c263

const bot = new Discord.Client(
    disableEveryone: true
);

bot.commands = new Discord.Collection();
const 
    readdirSync,
    statSync
 = require('fs');

const 
    join
 = require('path');

fs.readdir('./cmds/', (err, files) => 
    if (err) console.error(err);

    let jsfiles = files.filter(f => f.split('.').pop() === 'js');
    if (jsfiles.length <= 0) 
        return console.log('No commands to load.');
        return;
    

    console.log(`Loading $jsfiles.length commands!`);

    jsfiles.forEach((f, i) => 
        let props = require(`./cmds/$f`);
        console.log(`$i + 1: $f loaded!`);
        bot.commands.set(props.help.name, props);
    );
);

我希望通过父目录以及所有当前和未来的子目录加载 jsfiles 获得相同的结果。

我目前的结果是所有的 js 文件都被加载了,但子目录中的文件没有被加载。

如果有人可以帮助我,我将不胜感激!提前谢谢你。

【问题讨论】:

search, and research 在点击“发布”按钮之前。从小一点开始:谷歌/搜索 *** 以获取“nodejs 递归列出目录中的所有文件”。这为您提供结果(包括来自该站点的答案),并将让您自行解决所有问题。 我已经这样做了,但没有任何帮助。我已经自己想通了。我会尽快发布我的问题的答案。 【参考方案1】:

所以,我想出了如何获得我想要的结果。 我找到了一个名为 fs-readdir-recursive 的节点包,其中包含我想要的一切。 安装包:npm install fs-readdir-recursive --save 并初始化它。 const &lt;var name&gt; = require('fs-readdir-recursive');

然后在你这样做之后,创建另一个变量。 const &lt;var name&gt; = read('./&lt;parent directory&gt;/');

此变量将是使用 for each 循环搜索的父目录。

const <var name> = require('fs-readdir-recursive');
const files = read('./cmds/');
files.forEach(file => 
    let cmd = file.replace('.js', '');
    let props = require(`./cmds/$cmd`);

    <your code here>

);

这将读取父目录中的每个文件。

【讨论】:

以上是关于如何从父目录和所有子目录中获取文件?的主要内容,如果未能解决你的问题,请参考以下文章

java中如何获取目录中的所有文件

如何获取子目录中所有文件的创建日期[重复]

如何获取一个目录下有多少个文件 java

如何获取给定目录中的所有文件名

如何使用 Gradle 获取文件和目录名称?

如何从包括子目录的目录中获取所有文件? [复制]