我正在尝试使用 Deno 递归读取文件Deno.readDir,但他们提供的示例仅执行给定的文件夹:
for await (const entry of Deno.readDir(Deno.cwd())) {
console.log(entry.name);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能使这个递归?
walkDeno 的标准库包含一个为此目的调用的函数。它可以在std/fs/walk.ts. 这是一个例子:
/Users/deno/so-74953935/main.ts:
import { walk } from "https://deno.land/std@0.170.0/fs/walk.ts";
for await (const walkEntry of walk(Deno.cwd())) {
const type = walkEntry.isSymlink
? "symlink"
: walkEntry.isFile
? "file"
: "directory";
console.log(type, walkEntry.path);
}
Run Code Online (Sandbox Code Playgroud)
在终端中运行:
% pwd
/Users/deno/so-74953935
% ls -AF
.vscode/ deno.jsonc deno.lock main.ts
% ls -AF .vscode
settings.json
% deno --version
deno 1.29.1 (release, x86_64-apple-darwin)
v8 10.9.194.5
typescript 4.9.4
% deno run --allow-read main.ts
directory /Users/deno/so-74953935
file /Users/deno/so-74953935/main.ts
file /Users/deno/so-74953935/deno.jsonc
file /Users/deno/so-74953935/deno.lock
directory /Users/deno/so-74953935/.vscode
file /Users/deno/so-74953935/.vscode/settings.json
Run Code Online (Sandbox Code Playgroud)