节点fs错误:EPERM:不允许操作,打开

时间:2015-10-29 16:16:27

标签: node.js fs

我的应用中出现此错误:

  

错误:EPERM:不允许操作,打开' C:\ Program Files   (x86)\ Full Menu \ db \ main.json'

我的应用程序是用电子样板构建的。我正在使用此函数来获取应用程序根目录的路径:

path.dirname(process.execPath)

这是编写文件的脚本:

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

我知道问题所在:权限。但是,如果不以管理员身份运行应用程序,我怎么能让它工作呢?

12 个答案:

答案 0 :(得分:15)

为了搜索者的利益;我有这个错误。我添加了Everyone的完整权限作为测试,但是没有修复它。问题是该文件设置为readonly(通过源代码管理)。

取消选中文件属性中的readonly选项可解决此问题。

答案 1 :(得分:2)

在Windows 10计算机上,运行旧的Node JS项目时遇到此错误。我认为Node版本是10.16。

无论如何,它都试图在我的项目中修改一个点文件。确保文件未在Windows上隐藏。取消选中文件属性中的隐藏选项后,弹出。一切正常。

因此要解决:

  1. 在Windows资源管理器中右键单击文件
  2. 选择属性
  3. 取消选中隐藏
  4. 点击确定
  5. 重新运行命令。

enter image description here

答案 2 :(得分:1)

我认为您必须以递归方式更改文件的权限,以便执行脚本的用户可以读取/写入此文件。

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

答案 3 :(得分:1)

  

如果使用Windows 10,则必须关闭勒索软件防护。勒索软件保护将阻止所有文件夹和文件的更改。您可以在Windows安全中心中将其关闭。参见下面的截图:

enter image description here

答案 4 :(得分:0)

我必须以管理员身份运行节点命令提示符并修复了问题。

答案 5 :(得分:0)

出现错误是因为我之前已经打开过文件

#https://www.kaggle.com/residentmario/pumpkin-price-polynomial-regression

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import seaborn as sns

pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)


dt= pd.read_csv("C:/Users/asmgx/OneDrive/__PhD/Code/Models/PolynomialRegression/Pumpkins.csv")




SizeMap = {'sml':0, 'med':1, 'med-lrg':2, 'lrg':3, 'xlrg':4, 'jbo':5, 'exjbo':6}
dt = dt.assign(
        t_size = dt['Item Size'].map(SizeMap),
        t_avg = (dt['Low Price'] + dt['High Price']) / 2
)



dt = dt[(dt['City Name'] == 'ATLANTA') & (dt['Package'] == '24 inch bins') & (dt['Variety'] == 'HOWDEN TYPE')]


## draw features

sns.pairplot(dt[['t_size','t_avg']])

答案 6 :(得分:0)

重新启动计算机为我解决了此问题。

答案 7 :(得分:0)

我也遇到了这个问题。我正在使用TFS(或VSO,Azure DevOps等)进行源代码控制。我试图从.scss编译为.css,但无法打开.css。我只需要右键单击我的.css文件,然后签出进行编辑...

答案 8 :(得分:0)

如果您具有无法在docker中打开或修改为卷的文件,则重新启动docker应该可以解决此问题。

答案 9 :(得分:0)

删除文件/文件夹时遇到此问题。

解决方案:

只需重新启动代码编辑器/终端 要么 重新启动计算机

答案 10 :(得分:0)

这不是确切答案,但可能会有所帮助:

我认为如果您想readreadSync一个不存在的文件,则会遇到EPERM错误...

  

在许多编程语言中,任何与权限相关的错误都可能不会   直接意味着实际的权限问题

例如在PHP中,文件夹(不是文件)必须通过php rmdir()方法删除,但是如果您想使用unlink()进行删除,则会遇到一条错误的警告消息,提示您“权限被拒绝”

答案 11 :(得分:-1)

当我尝试使用NodeJS创建和写入文件时,我遇到了同样的问题。我以为它与我的Windows文件/文件夹访问权限有关,但是在重新启动计算机并再次运行代码后,我仍然遇到相同的错误。

enter image description here

enter image description here

但是,这次我的防病毒软件也给了我一个弹出消息,说明它阻止了 Node.exe 写入或打开文件的权限。因此,一旦我将Node.exe标记为对我的防病毒程序(Avast)安全。

对我有用。我想,禁用我的防病毒软件也可以暂时修复它。