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()