typestar

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

  1. withFileTypes evita una llamada a stat por entrada.
  2. recursive: true recorre el árbol completo.
  3. stat da tamaño y hora de modificación.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 2 en Archivos; paso 4 de 18 en Node.js.

← Anterior Siguiente →