私のアプリでこのエラーが発生します:
エラー:EPERM:操作は許可されていません。'C:\ Program Files(x86)\ Full Menu\db\main.json 'を開いてください
私が持っているアプリは、電子ボイラープレートで構築されています。この関数を使用して、アプリのルートへのパスを取得しています。
path.dirname(process.execPath)
そして、これはファイルを書き込むスクリプトです。
fs.writeFile(apath + '/db/' + elem + '.json', JSON.stringify(results)
私は問題が何であるかを知っています:許可。しかし、管理者としてアプリを実行せずにこれを機能させるにはどうすればよいですか?
サーチャーのために;このエラーがあります。テストとしてEveryone
の完全な権限を追加しましたが、それで解決しませんでした。問題は、ファイルが(ソース管理によって)readonly
に設定されたことでした。
ファイルのプロパティでreadonly
オプションをオフにすると、問題が修正されました。
スクリプトを実行しているユーザーがこのファイルを読み書きできるように、ファイルに対する権限を再帰的に変更する必要があると思います。
開くことも変更することもできないファイルがdockerのボリュームとしてマウントされている場合は、dockerを再起動すると問題が解決します。
管理者としてノードコマンドプロンプトを実行する必要があり、それで問題が解決しました。
以前にファイルを既に開いているため、エラーが発生しました
var stream = fs.createWriteStream(outputFileName, {flags:'a'})
var output = fs.createWriteStream(outputFileName, {flags:'a'})
この問題は、ファイル/フォルダーを削除するときに発生しました。
ソリューション:
コードエディター/ターミナルを再起動するか、コンピューターを再起動してください
私もこの問題を抱えていました。ソース管理にTFS(またはVSO、Azure DevOpsなど)を使用しています。 .scssから.cssにコンパイルしようとしていましたが、.cssを開けませんでした。 .cssファイルを右クリックして、編集のためにチェックアウトするだけです...
コンピュータを再起動すると、この問題は解決しました。
これは正確な答えではありませんが、役立つかもしれません:
i think存在しないファイルをread
またはreadSync
にしたい場合、EPERM
エラーが発生します...
多くのプログラミング言語では、権限に関連するエラーは、実際の権限の問題を直接意味するものではありません
たとえばPHP
フォルダー(ファイルではなく)はphp rmdir()
メソッドで削除する必要がありますが、unlink()
で削除する場合、誤った警告メッセージが表示されます。 「許可が拒否されました」