web-dev-qa-db-fra.com

Nœud fs Erreur: EPERM: opération non autorisée, ouverte

Je reçois cette erreur dans mon application:

Erreur: EPERM: opération non autorisée, ouvrez 'C:\Program Files (x86)\Menu complet\db\main.json '

L'application que j'ai est construite avec un passe-partout électronique. J'utilise cette fonction pour obtenir le chemin d'accès à la racine de l'application:

path.dirname(process.execPath)

Et voici le script qui écrit le fichier:

fs.writeFile(apath + '/db/' + elem + '.json', JSON.stringify(results)

Je sais quel est le problème: les autorisations. Mais comment pourrais-je le faire fonctionner sans exécuter l'application en tant qu'administrateur?

10
Sergiu

Au profit des chercheurs; J'ai cette erreur. J'ai ajouté des autorisations complètes pour Everyone à titre de test, mais cela n'a pas résolu le problème. Le problème était que le fichier était défini sur readonly (par contrôle de source). 

La désactivation de l'option readonly dans les propriétés du fichier a résolu le problème.

13
HockeyJ

Je pense que vous devez modifier les autorisations de manière récursive sur le fichier afin que l'utilisateur exécutant votre script puisse lire/écrire ce fichier.

https://fr.wikipedia.org/wiki/Chmod

1
Metux

Si vous utilisez Windows 10, vous devez désactiver la protection Ransomware. La protection contre les ransomwares empêche toute modification des dossiers et des fichiers. Vous pouvez la désactiver dans le Centre de sécurité Windows. Voir la capture d'écran ci-dessous:

 enter image description here

1

j'ai dû exécuter la commande de noeud Invite en tant qu'administrateur et cela a résolu le problème.

0
Rainhider