¿Cómo elimino un archivo con node.js?node.js eliminar archivo
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
no veo un comando de retiro?
¿Cómo elimino un archivo con node.js?node.js eliminar archivo
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
no veo un comando de retiro?
Puede llamar al fs.unlink(path, callback)
para desvincular asincrónicamente (2) o fs.unlinkSync(path)
para desvincularse sincrónicamente (2).
Donde path
es la ruta de archivo que desea eliminar.
Por ejemplo, queremos eliminar el archivo discovery.docx
del directorio c:/book
. Entonces mi ruta de archivo es c:/book/discovery.docx
. Así código para eliminar ese archivo será,
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
Aquí es un pequeño fragmento de que hice para este propósito,
var fs = require('fs');
var gutil = require('gulp-util');
fs.exists('./www/index.html', function(exists) {
if(exists) {
//Show in green
console.log(gutil.colors.green('File exists. Deleting now ...'));
fs.unlink('./www/index.html');
} else {
//Show in red
console.log(gutil.colors.red('File not found, so not deleting.'));
}
});
Async existe está en desuso https://nodejs.org/api/fs.html#fs_fs_exists_path_callback – Mirodinho
¿Qué sucede si el archivo es eliminado por otros después de comprobar con 'fs.exists' y antes de eliminarlo con' fs.unlink'? Podría ocurrir. – Searene
No debe verificar si existe un archivo antes de intentar desvincularlo. Simplemente llame a 'unlink', y si no existe, maneje el error' ENOENT'. De lo contrario, puede crear una condición de carrera. – ZachB
Si desea comprobar archivo antes de eliminar si existe o no. Por lo tanto, use fs.stat o fs.statSync (Sincrónico) en lugar de fs.exists
. Porque de acuerdo con el último node.js documentation, fs.exists
ahora obsoleto.
Por ejemplo: -
fs.stat('./server/upload/my.csv', function (err, stats) {
console.log(stats);//here we got all information of file in stats variable
if (err) {
return console.error(err);
}
fs.unlink('./server/upload/my.csv',function(err){
if(err) return console.log(err);
console.log('file deleted successfully');
});
});
¿Qué sucede si compruebo que existe, pero está bloqueado por otro proceso, o bien, compruebo que existe, y está bien, pero luego otro proceso lo bloquea al azar antes de que pueda eliminarlo. ¿Cómo puedo bloquear directamente después de verificar? entonces no podría borrar como está bloqueado –
Tenga en cuenta que fs.exists() está en desuso, pero fs.existsSync() no lo es. – Tim
Hay una razón por la que está en desuso: muchas veces crea una condición de carrera si comprueba que existe un archivo antes de eliminarlo. En cambio, solo debe llamar a 'fs.unlink', y si el archivo no existe, tendrá un error' ENOENT' en la devolución de llamada. No es necesario verificar antes de intentar desvincular. – ZachB
Aquí el código donde se puede eliminar el archivo/imagen de la carpeta.
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
Desde el nodo 7, el argumento de devolución de llamada ya no es opcional y dará como resultado una advertencia. Pasar una función vacía si realmente no te importa. – jlh
creo que no tiene que comprobar si existe el archivo o no, fs.unlink
a comprobar que usted.
fs.unlink('fileToBeRemoved', function(err) {
if(err && err.code == 'ENOENT') {
// file doens't exist
console.info("File doesn't exist, won't remove it.");
} else if (err) {
// other errors, e.g. maybe we don't have enough permission
console.error("Error occurred while trying to remove file");
} else {
console.info(`removed`);
}
});
¿cómo puedo obtener el nombre de la imagen anterior en Nuestro controlador? – Chaudhary
Gracias Searene, esto funcionó para mi situación. – user752746
Como la respuesta aceptada, utilice fs.unlink
para eliminar archivos.
Pero de acuerdo con Node.js documentation
Usando
fs.stat()
para comprobar la existencia de un archivo antes de llamarfs.open()
,fs.readFile()
ofs.writeFile()
no es recomendable. En cambio, el código de usuario debe abrir/leer/escribir el archivo directamente y manejar el error que se genera si el archivo no está disponible.Para verificar si existe un archivo sin manipularlo después, se recomienda
fs.access()
.
para comprobar archivos pueden ser borrados o no, el uso fs.access
lugar
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
puede utilizar del módulo para eliminar uno o más archivos en el directorio actual. lo bueno de esto es que lo protege contra la eliminación del directorio de trabajo actual y más.
const del = require('del');
del(['<your pathere here>/*']).then((paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
Uso NPM module fs-extra, lo que le da todo en fs, además de todo es Promisified. Como beneficio adicional, hay un fs.remove() method disponible.
Creo que viene del estándar POSIX. ¡Pero pensarías que podrían agregar un alias 'delete'! – Nick
De acuerdo, pero para obtener más información http://en.wikipedia.org/wiki/Unlink_(Unix) – i3enhamin
@Nick o un alias 'rmFile' – PixnBits