¿Cómo elimino un archivo con node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
No veo un comando de eliminación?
¿Cómo elimino un archivo con node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
No veo un comando de eliminación?
Respuestas:
rmFilealias
rmalias si tienen rmdirmétodos
fs.unlinkSync()
Puede llamar fs.unlink(path, callback)para desvincular asíncrono (2) o fs.unlinkSync(path)desvincular síncrono (2).
¿Dónde pathestá la ruta del archivo que desea eliminar?
Por ejemplo, queremos eliminar el discovery.docxarchivo del c:/bookdirectorio. Entonces mi ruta de archivo es c:/book/discovery.docx. Entonces, el código para eliminar ese archivo será,
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
Si desea verificar el archivo antes de eliminar si existe o no. Por lo tanto, use fs.stat o fs.statSync ( Synchronous ) en lugar de fs.exists. Porque de acuerdo con la última documentación de node.js , fs.existsahora en desuso .
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');
});
});
fs.unlink, y si el archivo no existe, tendrá un ENOENTerror en la devolución de llamada. No es necesario verificar antes de intentar desvincular.
fs.unlinkrealiza cuando el archivo no existe, por lo que mi opinión es ese archivo de verificación antes de eliminarlo.
unlinkdevolución de llamada. Si se produjo ese error, el archivo no existía. Mira la respuesta de Searene, por ejemplo.
No creo que tenga que verificar si el archivo existe o no, fs.unlinklo verificará por 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`);
}
});
Aquí hay un pequeño fragmento de lo 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.'));
}
});
fs.existsy antes de eliminarlo fs.unlink? Podría ocurrir.
unlink, y si no existe, maneje el ENOENTerror. De lo contrario, puede crear una condición de carrera.
Como respuesta aceptada, úsela fs.unlinkpara eliminar archivos.
Pero de acuerdo con la documentación de Node.js
Se usa
fs.stat()para verificar la existencia de un archivo antes de llamarfs.open(),fs.readFile()ofs.writeFile()no se recomienda. En cambio, el código de usuario debe abrir / leer / escribir el archivo directamente y manejar el error generado si el archivo no está disponible.Para verificar si existe un archivo sin manipularlo después,
fs.access()se recomienda.
para verificar si los archivos se pueden eliminar o no, use en su fs.accesslugar
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
unlinkdirectamente porque saben que tienen derechos para eliminar el archivo. Pero fs.accesses una buena alternativa si necesitan verificar antes de eliminar. Pero creo que si necesitan verificar si existe un archivo sin manipularlo después, deberían usarlo naturalmente fs.stat, fs.accesstiene un propósito diferente en mi humilde opinión.
Aquí debajo mi código que funciona bien.
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
2019 y Node 10+ están aquí . Debajo de la versión usando dulce asíncrono / espera .
Ahora ya no es necesario envolverse fs.unlinken Promesas ni usar paquetes adicionales (como fs-extra).
Solo use la API nativa de Promesas fs .
const fs = require('fs').promises;
(async () => {
try {
await fs.unlink('~/any/file');
} catch (e) {
// file doesn't exist, no permissions, etc..
// full list of possible errors is here
// http://man7.org/linux/man-pages/man2/unlink.2.html#ERRORS
console.log(e);
}
})();
Aquí hay fsPromises.unlink especificaciones de Node docs.
También tenga en cuenta que fs.promises API marcado como experimental en el Nodo 10.xx (aunque funciona totalmente bien, sin embargo), y ya no es experimental desde entonces 11.14.0.
puede usar del module 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 superior.
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
Puede usar la función fs.unlink (ruta, devolución de llamada) . Aquí hay un ejemplo del contenedor de funciones con el patrón "error-back":
// Dependencies.
const fs = require('fs');
// Delete a file.
const deleteFile = (filePath, callback) => {
// Unlink the file.
fs.unlink(filePath, (error) => {
if (!error) {
callback(false);
} else {
callback('Error deleting the file');
}
})
};
Elimine archivos del directorio que coincide con regexp para nombre de archivo. Usado solo fs.unlink - para eliminar el archivo, fs.readdir - para obtener todos los archivos de un directorio
var fs = require('fs');
const path = '/path_to_files/filename.anyextension';
const removeFile = (fileName) => {
fs.unlink(`${path}${fileName}`, function(error) {
if (error) {
throw error;
}
console.log('Deleted filename', fileName);
})
}
const reg = /^[a-zA-Z]+_[0-9]+(\s[2-4])+\./
fs.readdir(path, function(err, items) {
for (var i=0; i<items.length; i++) {
console.log(items[i], ' ', reg.test(items[i]))
if (reg.test(items[i])) {
console.log(items[i])
removeFile(items[i])
}
}
});
fs-extra proporciona un método de eliminación:
const fs = require('fs-extra')
fs.remove('/tmp/myfile')
.then(() => {
console.log('success!')
})
.catch(err => {
console.error(err)
})
https://github.com/jprichardson/node-fs-extra/blob/master/docs/remove.md
Use el módulo NPM fs-extra , que le brinda todo en fs, además de que todo está Promisificado. Como beneficio adicional, hay un método fs.remove () disponible.
Aquí el código donde 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);
});
deletealias!