【发布时间】:2022-12-30 00:58:55
【问题描述】:
我正在尝试使用 Deno.readDir 递归读取 Deno 中的文件,但他们提供的示例仅执行给定的文件夹:
for await (const entry of Deno.readDir(Deno.cwd())) {
console.log(entry.name);
}
我怎样才能使这个递归?
【问题讨论】:
标签: typescript gltf parcel
我正在尝试使用 Deno.readDir 递归读取 Deno 中的文件,但他们提供的示例仅执行给定的文件夹:
for await (const entry of Deno.readDir(Deno.cwd())) {
console.log(entry.name);
}
我怎样才能使这个递归?
【问题讨论】:
标签: typescript gltf parcel
由于该函数返回一个异步生成器,您可以创建自己的环绕Deno.readDir 的生成器函数:
(请注意,提供的示例将加入路径和名称,为您提供诸如 /directory/name.txt 之类的字符串)
import { join } from "https://deno.land/std/path/mod.ts";
export async function* recursiveReaddir(
path: string
): AsyncGenerator<string, void> {
for await (const dirEntry of Deno.readDir(path)) {
if (dirEntry.isDirectory) {
yield* recursiveReaddir(join(path, dirEntry.name));
} else if (dirEntry.isFile) {
yield join(path, dirEntry.name);
}
}
}
for await (const entry of recursiveReaddir(Deno.cwd())) {
console.log(entry)
}
或者,您可以使用 recursive_readdir,这是 Deno 中为此目的制作的第 3 方库。
【讨论】: