Discord.JS 命令处理程序:如何从目录中的所有目录读取文件?
Discord.JS Command Handler: How to read files from all directories within a directory?
我 运行 在检查我的文件的命令目录时遇到了一些问题。我希望 readdirSync
从 /commands/
目录(音乐、信息等)中的某些目录中读取所有 .js 文件,但我似乎不知道或无法找到一种方法来做到这一点。
代码如下:
import { readdirSync } from "fs";
import { dirname, join } from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export async function importer(client) {
const commandFiles = readdirSync(join(__dirname, "../../", "/commands/")).filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
const command = await import(join(__dirname, "../../", "/commands/", `${file}`));
client.commands.set(command.default.name, command.default);
}
}
在 commandFiles 中,我似乎无法在 commands
中的 /
之后找到一些东西,因此它可以读取 /commands/
中的目录及其文件.
感谢任何帮助!
谢谢!
读取commands目录后需要读取子目录,并使用子目录名作为join的参数:
export async function importer(client) {
const dir = join(__dirname, "../../commands/")
const commandCategories = readdirSync(dir)
for (let cat of commandCategories) {
const commands = readdirSync(join(dir, cat)).filter(files => files.endsWith(".js"));
for (const file of commands) {
const command = import(join(dir, cat, file));
// Add any logic you want before you load the command here
client.commands.set(command.default.name, command.default);
}
}
}
我 运行 在检查我的文件的命令目录时遇到了一些问题。我希望 readdirSync
从 /commands/
目录(音乐、信息等)中的某些目录中读取所有 .js 文件,但我似乎不知道或无法找到一种方法来做到这一点。
代码如下:
import { readdirSync } from "fs";
import { dirname, join } from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export async function importer(client) {
const commandFiles = readdirSync(join(__dirname, "../../", "/commands/")).filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
const command = await import(join(__dirname, "../../", "/commands/", `${file}`));
client.commands.set(command.default.name, command.default);
}
}
在 commandFiles 中,我似乎无法在 commands
中的 /
之后找到一些东西,因此它可以读取 /commands/
中的目录及其文件.
感谢任何帮助!
谢谢!
读取commands目录后需要读取子目录,并使用子目录名作为join的参数:
export async function importer(client) {
const dir = join(__dirname, "../../commands/")
const commandCategories = readdirSync(dir)
for (let cat of commandCategories) {
const commands = readdirSync(join(dir, cat)).filter(files => files.endsWith(".js"));
for (const file of commands) {
const command = import(join(dir, cat, file));
// Add any logic you want before you load the command here
client.commands.set(command.default.name, command.default);
}
}
}