web-dev-qa-db-ja.com

Node fsエラー:EPERM:操作は許可されていません、開いています

私のアプリでこのエラーが発生します:

エラー:EPERM:操作は許可されていません。'C:\ Program Files(x86)\ Full Menu\db\main.json 'を開いてください

私が持っているアプリは、電子ボイラープレートで構築されています。この関数を使用して、アプリのルートへのパスを取得しています。

path.dirname(process.execPath)

そして、これはファイルを書き込むスクリプトです。

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

私は問題が何であるかを知っています:許可。しかし、管理者としてアプリを実行せずにこれを機能させるにはどうすればよいですか?

14
Sergiu

サーチャーのために;このエラーがあります。テストとしてEveryoneの完全な権限を追加しましたが、それで解決しませんでした。問題は、ファイルが(ソース管理によって)readonlyに設定されたことでした。

ファイルのプロパティでreadonlyオプションをオフにすると、問題が修正されました。

23
HockeyJ

スクリプトを実行しているユーザーがこのファイルを読み書きできるように、ファイルに対する権限を再帰的に変更する必要があると思います。

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

1
Metux

開くことも変更することもできないファイルがdockerのボリュームとしてマウントされている場合は、dockerを再起動すると問題が解決します。

1
Stem Florin

Windows 10を使用している場合は、ランサムウェア保護をオフにする必要があります。ランサムウェア保護は、すべてのフォルダとファイルの変更を防ぎます。Windowsセキュリティセンターで無効にすることができます。以下のスクリーンショットを参照してください。

enter image description here

1

管理者としてノードコマンドプロンプトを実行する必要があり、それで問題が解決しました。

1
Rainhider

以前にファイルを既に開いているため、エラーが発生しました

var stream = fs.createWriteStream(outputFileName, {flags:'a'})
var output = fs.createWriteStream(outputFileName, {flags:'a'})
0
clood

この問題は、ファイル/フォルダーを削除するときに発生しました。

ソリューション:

コードエディター/ターミナルを再起動するか、コンピューターを再起動してください

0
Shivam Gupta

私もこの問題を抱えていました。ソース管理にTFS(またはVSO、Azure DevOpsなど)を使用しています。 .scssから.cssにコンパイルしようとしていましたが、.cssを開けませんでした。 .cssファイルを右クリックして、編集のためにチェックアウトするだけです...

0
mmcfly

コンピュータを再起動すると、この問題は解決しました。

0
George

これは正確な答えではありませんが、役立つかもしれません:

i think存在しないファイルをreadまたはreadSyncにしたい場合、EPERMエラーが発生します...

多くのプログラミング言語では、権限に関連するエラーは、実際の権限の問題を直接意味するものではありません

たとえばPHPフォルダー(ファイルではなく)はphp rmdir()メソッドで削除する必要がありますが、unlink()で削除する場合、誤った警告メッセージが表示されます。 「許可が拒否されました」

0