¿Cómo puedo comprobar de forma sincrónica, utilizando node.JS ¿existe un archivo o directorio?
Respuestas
¿Demasiados anuncios?Fs.exists() está obsoleto, no lo uses https://nodejs.org/api/fs.html#fs_fs_exists_path_callback
Usted podría implementar el núcleo nodejs manera utilizada en este: https://github.com/nodejs/node-v0.x-archive/blob/master/lib/module.JS#L86
function statPath(path) {
try {
return fs.statSync(path);
} catch (ex) {}
return false;
}
esto devolverá el objeto stats, entonces una vez que tengas el objeto stats podrías intentar
var exist = statPath('/path/to/your/file.js');
if(exist && exist.isFile()) {
// do something
}
Algunas respuestas aquí dicen que fs.exists
y fs.existsSync
son ambos obsoletos. Según la documentación, esto ya no es cierto. Sólo fs.exists
está deprecada ahora:
Tenga en cuenta que fs.exists() está obsoleta, pero fs.existsSync() no. (El parámetro fs.exists() acepta parámetros que son inconsistentes con otras inconsistentes con otros callbacks de Node.JS. fs.existsSync() no utiliza una devolución de llamada).
Así que puede utilizar con seguridad fs.existsSync() para comprobar sincrónicamente si un archivo existe.
El uso de las pruebas de fileSystem (fs) activará objetos de error, que luego tendrá que envolver en una declaración try/catch. Ahórrese un poco de esfuerzo y utilice una función introducida en la rama 0.4.x.
var path = require('path');
var dirs = ['one', 'two', 'three'];
dirs.map(function(dir) {
path.exists(dir, function(exists) {
var message = (exists) ? dir + ': is a directory' : dir + ': is not a directory';
console.log(message);
});
});