VS 代码 - 错误:EPERM:不允许操作
Posted
技术标签:
【中文标题】VS 代码 - 错误:EPERM:不允许操作【英文标题】:VS Code - Error: EPERM: operation not permitted 【发布时间】:2020-03-01 14:05:21 【问题描述】:在 Windows 10 中使用 VS 代码时,我遇到了很多权限问题。
-
尝试移动文件夹时:
错误:EPERM:不允许操作,重命名“路径 a”->“路径 b”
删除文件夹时:
它静默失败,该文件夹已从解决方案资源管理器中删除,但仍保留在磁盘上。
无论有没有管理员权限,它都不起作用。
我去了包含我所有回购的文件夹,将所有权设置为我,对所有经过身份验证的用户应用完全控制,但它仍然不起作用。
有什么想法吗?
编辑:有时它确实有效,这就是让它非常奇怪的原因
【问题讨论】:
您找到解决方案了吗?我也面临同样的问题 很遗憾,不,它仍然经常发生:/ 【参考方案1】:我在 React Native 开发时也遇到了这个错误,这是因为应用程序正在运行并不断监听代码的变化。终止 Metro 有效。
【讨论】:
【参考方案2】:我在带有 Angular 的 VSCode 中遇到了同样的问题。我正在尝试重命名组件文件夹。
我的解决方案是从 folder_to_rename/dist/ 文件夹中删除已编译的 Angular (.js) 文件。之后,我可以毫无问题地重命名父文件夹。
【讨论】:
【参考方案3】:只是添加到这个答案墙,这显然是一个非常依赖于上下文的问题,我最初认为这与 vscode 或我的 windows 权限有关,但实际上这是我的删除脚本的问题。
最初我的脚本是这样的:
fs.readdir("./content/products", (err, files) =>
if (err) console.log(err);
else
files.forEach((file) =>
console.log(`Deleting: $file`);
fs.unlink(`content/products//$file`, (err) =>
if (err) throw err;
);
);
);
这在我这个项目的大部分时间里都有效......直到我决定在products
目录中创建子文件夹,此时节点试图取消链接目录并引发了这个错误。即使在重新启动我的电脑后也无法弄清楚为什么会发生这种情况:/
我将删除脚本更改为
try
await fs.emptyDir("content/products");
catch (err)
console.error(err);
它现在可以工作了:)
【讨论】:
【参考方案4】:我也有这个问题。就我而言,原因似乎是“Angular Language Service”扩展。
我在扩展窗格中删除了它,并且能够立即重命名文件。
不幸的是,启用 Angular 语言服务器后问题仍然存在。
【讨论】:
【参考方案5】:对我有用的解决方案是以管理员身份打开 Vscode。
【讨论】:
【参考方案6】:我在运行Live Server extension 的实时服务器时遇到了Error: EPERM: operation not permitted, rename
。停止实时服务器后,重命名操作再次成为可能。
【讨论】:
非常感谢先生。它帮助了我。【参考方案7】:只需关闭 vscode 并在文件资源管理器中执行任何文件操作。我仍然使用这种方式重命名我的文件,也许这是一个未解决的错误。
【讨论】:
【参考方案8】:我在做一个 React 项目时遇到了同样的问题。起初,我以为我需要授予管理员权限,但这也没有用。后来我发现我的项目托管在我的localHost上。因此,如果您的项目正在运行,我们无法更改文件夹结构。您需要在更新文件夹结构之前退出服务器。
解决方案:退出本地主机服务器并重试(对于 React 和 Angular 用户)。您也可以尝试重启 VScode。
【讨论】:
【参考方案9】:虽然听起来很傻,但当文件的“只读”标志因任何原因设置时也会发生此错误;就我而言,它是将整个 VSCode 文件夹从只读主机共享复制到 VM。如果文件是只读的,VSCode 无法更改它,您是否拥有完整的管理员权限并不重要。对于打开的文件,您可以使用 SysInternals 的 Process Explorer 工具来找出哪个进程具有特定路径或文件的打开句柄。
【讨论】:
【参考方案10】:如果您使用 Jest VSCode 扩展并且测试文件位于您尝试重命名的文件夹中,则在不禁用 Jest 运行程序的情况下它可能无法工作。
【讨论】:
【参考方案11】:在我的例子中,它是一个嵌套文件夹。允许手动创建***文件夹并移动其内容...(导入仍会自动更新)
【讨论】:
【参考方案12】:如果您正在开发 Firebase 应用并且之前运行过其 Firebase 模拟器,则可能会发生这种情况,因为当您按 Ctrl+C
时,他们的模拟器可能会 not completely shutdown。也没有人提到可以在windows 任务管理器中结束哪个后台进程。
简而言之,当这个问题发生时,一定是某种 CLI 或 Extension 占用了资源。
解决方案:重新启动电脑并再次尝试重命名或删除您的文件夹,它应该可以工作。
【讨论】:
【参考方案13】:我在 VS Code 中重命名或移动文件时遇到错误消息。 然后我注意到它在 Windows 资源管理器中是一样的。
我使用 Angular-CLI 在 Angular 中进行开发,并在 cmd 中执行命令 ng build --watch
。
当我停止 watch 命令时,问题就解决了,我可以在 VS Code 中重命名和移动文件而没有任何问题。
所以我认为有些进程会保存您的文件。 我希望这会有所帮助。
【讨论】:
这里相同,通过重启 VS Code 修复 太棒了!这发生在我的 React 上。我需要做的就是在重命名文件夹时停止服务器运行,然后它就可以工作了。 这里一样,通过停止 wathing 过程解决,我正在使用 nodemon以上是关于VS 代码 - 错误:EPERM:不允许操作的主要内容,如果未能解决你的问题,请参考以下文章
错误:EPERM:不允许操作,错误时统计“D:\System Volume Information”(本机)