estoy usando fs.unlink()
para borrar un archivo y recibo el siguiente error:Node.js fs.unlink causa de error EPERM
uncaught undefined:
Error: EPERM, Operation not permitted '/Path/To/File'
Alguien sabe una qué ocurre esto?
estoy usando fs.unlink()
para borrar un archivo y recibo el siguiente error:Node.js fs.unlink causa de error EPERM
uncaught undefined:
Error: EPERM, Operation not permitted '/Path/To/File'
Alguien sabe una qué ocurre esto?
Sí, no tiene permiso para eliminar o desvincular ese archivo. Inténtalo de nuevo con más derechos o verifica que estés dándole el camino correcto.
No puede eliminar un directorio que no esté vacío. Y fs.unlinkSync() se usa para eliminar un archivo, no una carpeta.
Para eliminar una carpeta vacía, utilice fs.rmdir()
para borrar una carpeta no vacía, utilice este fragmento:
var deleteFolderRecursive = function(path) {
if(fs.existsSync(path)) {
fs.readdirSync(path).forEach(function(file) {
var curPath = path + "/" + file;
if(fs.statSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
de fragmentos de stackoverflow: Is node.js rmdir recursive ? Will it work on non empty directories?
¡Obtuve el mismo error actualizando un módulo npm mientras la aplicación lo estaba usando! Gracias. – Vadorequest
Este fragmento NO se debe usar en ningún código que maneje la solicitud del cliente, ya que realiza IO síncrona y bloqueará toda su aplicación al tiempo que elimina un árbol de directorios potencialmente grande. – selfawaresoup
@lnwdr Sí, este fragmento es malo para directorios grandes en una solicitud de cliente. Pero está bien utilizarlo para un árbol de directorios relativamente pequeño. ¿Puede proporcionar alguna solución para eliminar un árbol de directorios que proviene de una solicitud del cliente? Eso será apreciado. Gracias – Raghavendra
Si quiero lograr algo como rm -rf, hay un paquete de npm llamado rimraf que lo hace muy fácil.
Quizás el Ruta del archivo se encuentra es erroneus.
si no, pruebe con fs.unlinkSync()
Compruebe su mensaje de error?! Intenta hacer lo mismo con el usuario que ejecuta el proceso. (es decir: /> unlink/path/To/file) – malletjo