A veces quieres leer el contenido de un directorio en Deno. Para ello, puedes usar la función Deno.readDir
.
Esta función toma una ruta de directorio y devuelve una promesa que se resuelve con un iterador asíncrono de objetos Deno.DirEntry
.
Como ves, a diferencia de Node, no necesitas importar ninguna biblioteca adicional para leer el contenido de un directorio en Deno. La función Deno.readDir
está disponible desde el objeto global Deno
y no necesitas importarla explícitamente.
const dir = await Deno.readDir("ruta/al/directorio");
Ahora puedes iterar sobre el iterador asíncrono de objetos Deno.DirEntry
y obtener el nombre de cada archivo o subdirectorio.
for await (const entry of dir) {
console.log(entry);
}
// { name: "archivo1.txt", isFile: true, isDirectory: false, isSymlink: false }
// { name: "archivo2.txt", isFile: true, isDirectory: false, isSymlink: false }
// { name: "subfolder", isFile: false, isDirectory: true, isSymlink: false }
Los campos disponibles son:
-
name
: string El nombre del archivo. Es solo el nombre del recurso y no incluye la ruta completa. -
isFile
: booleantrue
si se trata de información de un archivo regular. Mutuamente exclusivo conDirEntry.isDirectory
yDirEntry.isSymlink
. -
isDirectory
: booleantrue
si se trata de información de un directorio regular. Mutuamente exclusivo conDirEntry.isFile
yDirEntry.isSymlink
. -
isSymlink
: booleantrue
si se trata de información de un enlace simbólico. Mutuamente exclusivo conDirEntry.isFile
yDirEntry.isDirectory
.
Nota:
Deno.readDir
necesita el permiso deallow-read
para funcionar. Puedes agregarlo a tu archivodeno.json
o usar el parámetro--allow-read
al ejecutar el script.
En el caso que el path
no sea un directorio, la función Deno.readDir
lanza un error Deno.errors.NotFound
.