La fonction fs.unlink de Node.js provoque une erreur EPERM

J’utilise fs.unlink() pour supprimer un fichier et le fs.unlink() suivant fs.unlink() :

 uncaught undefined: Error: EPERM, Operation not permitted '/Path/To/File' 

Quelqu’un sait pourquoi cela se passe?

Vous ne pouvez pas supprimer un répertoire qui n’est pas vide. Et fs.unlinkSync () est utilisé pour supprimer un fichier et non un dossier.

Pour supprimer un dossier vide, utilisez fs.rmdir ()

Pour supprimer un dossier non vide, utilisez cet extrait:

 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); } }; 

Extrait de stackoverflow: node.js rmdir est-il récursif? Cela fonctionnera-t-il sur des répertoires non vides?

Si vous voulez réaliser quelque chose comme rm -rf, il existe un paquet de npm appelé rimraf qui le rend très facile.

Peut-être que le chemin du fichier se trouve est erroné.

sinon, essayez avec fs.unlinkSync ()

Oui, vous n’êtes pas autorisé à supprimer / dissocier ce fichier. Réessayez avec plus de droits ou vérifiez que vous lui donnez le bon chemin.