Recorrer un directorio en JavaScript
readdir con tipos de archivo, y la opción recursiva.
import { mkdir, readdir, stat, writeFile } from "node:fs/promises";
import { mkdtemp } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
const root = await mkdtemp(join(tmpdir(), "walk-"));
await mkdir(join(root, "nested"));
await writeFile(join(root, "a.txt"), "a");
await writeFile(join(root, "nested", "b.txt"), "bb");
const entries = await readdir(root, { withFileTypes: true });
console.log(entries.map((e) => `${e.name}:${e.isDirectory() ? "dir" : "file"}`)
.sort());
const all = await readdir(root, { recursive: true });
console.log(all.length >= 3);
const info = await stat(join(root, "nested", "b.txt"));
console.log(info.size, info.isFile());
Cómo funciona
withFileTypesevita una llamada a stat por entrada.recursive: truerecorre el árbol completo.statda tamaño y hora de modificación.
Palabras clave y builtins usados aquí
awaitconstfromimport
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 699
- Tokens
- 199
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 119 segundos.
Paso 2 de 2 en Archivos; paso 4 de 18 en Node.js.