tutorial que node instalar espaƱol ejemplos documentacion node.js path filesystems fs

node.js - que - node js tutorial



Node.js comprueba si la ruta es un archivo o directorio (2)

Actualización: Node.Js> = 10

Podemos usar la nueva API de fs.promises

Experimental Esta función aún se encuentra en desarrollo activo y está sujeta a cambios no compatibles con versiones anteriores, o incluso a su eliminación, en cualquier versión futura. El uso de la función no se recomienda en entornos de producción. Las características experimentales no están sujetas al modelo de versión semántica de Node.js.

const fs = require(''fs'').promises; (async() => { try { const stat = await fs.lstat(''test.txt''); console.log(stat.isFile()); } catch(err) { console.error(err); } })();

Cualquier versión de Node.Js

A continuación, le indicamos cómo detectar si una ruta es un archivo o un directorio de forma asíncrona , que es el enfoque recomendado en el nodo. utilizando fs.lstat

const fs = require("fs"); let path = "/path/to/something"; fs.lstat(path, (err, stats) => { if(err) return console.log(err); //Handle error console.log(`Is file: ${stats.isFile()}`); console.log(`Is directory: ${stats.isDirectory()}`); console.log(`Is symbolic link: ${stats.isSymbolicLink()}`); console.log(`Is FIFO: ${stats.isFIFO()}`); console.log(`Is socket: ${stats.isSocket()}`); console.log(`Is character device: ${stats.isCharacterDevice()}`); console.log(`Is block device: ${stats.isBlockDevice()}`); });

Tenga en cuenta al utilizar la API síncrona:

Cuando se utiliza la forma síncrona, se lanzan inmediatamente excepciones. Puedes usar try / catch para manejar las excepciones o permitir que crezcan.

try{ fs.lstatSync("/some/path").isDirectory() }catch(e){ // Handle error if(e.code == ''ENOENT''){ //no such file or directory //do something }else { //do something else } }

Parece que no puedo obtener ningún resultado de búsqueda que explique cómo hacer esto.

Todo lo que quiero hacer es poder saber si una ruta determinada es un archivo o un directorio (carpeta).


fs.lstatSync(path_string).isDirectory() debe indicarle. De la docs :

Los objetos devueltos desde fs.stat () y fs.lstat () son de este tipo.

stats.isFile() stats.isDirectory() stats.isBlockDevice() stats.isCharacterDevice() stats.isSymbolicLink() (only valid with fs.lstat()) stats.isFIFO() stats.isSocket()