【问题标题】:How can I recursively read a directory in Deno?我如何递归读取 Deno 中的目录?
【发布时间】: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


    【解决方案1】:

    由于该函数返回一个异步生成器,您可以创建自己的环绕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 方库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 2021-01-29
      • 2020-03-13
      • 2018-07-02
      • 2018-08-12
      • 2015-07-13
      • 2011-01-29
      • 2017-09-29
      相关资源
      最近更新 更多