VS Code - 错误:EPERM:操作不允许

71

使用Windows 10和VS Code时,我遇到了很多权限问题。

  1. 尝试移动一个文件夹时:
    • 错误:EPERM:操作不允许,重命名'path a' -> 'path b'
  2. 删除一个文件夹时:
    • 它会悄悄失败,该文件夹从解决方案资源管理器中删除但在磁盘上仍然存在。

无论是否具有管理员权限都无法解决问题。

我进入了包含所有repos的文件夹,将其所有权设置为我的账户,并应用了对所有经过身份验证的用户的完全控制,但仍然无法正常工作。

输入图像描述

有什么想法吗?

编辑:有时它可以正常工作,这让它非常奇怪。


2
你找到解决方案了吗?我也遇到了同样的问题。 - OmGanesh
1
很遗憾,不,这种情况仍然经常发生:/ - Robouste
还是没有解决方案吗?:( 我刚刚重新格式化了我的电脑,但问题仍然存在。 - Jesus David Liang Chen
我无法在VSCode或资源管理器中重命名一个特定的文件夹及其子文件夹,但我可以重命名除了这个文件夹以外的所有文件夹。解决这个问题的方法(我认为)是:关闭VS Code,在资源管理器中进行重命名,撤销重命名,打开VS Code,再次进行重命名。这次它正常工作了。看起来好像VS Code一直保持着对该文件夹的打开句柄,即使在完全重启计算机后仍然存在,唯一释放该句柄的方法是在VS Code未运行时重命名资源管理器中的文件夹。是的,我自己也不明白。这就是魔法! - undefined
24个回答

77

当我在 VS Code 中重命名或移动文件时,遇到了错误信息。

后来我发现在 Windows Explorer 中也一样。

我使用 Angular-CLI 开发 Angular,并在 cmd 中执行命令 ng build --watch

当我停止监视命令后,问题得到解决,我可以在 VS Code 中轻松地重命名和移动文件。

因此,我认为有些进程持有您的文件。

希望这能对你有所帮助。


9
我也遇到过这个问题,重新启动VS Code后问题就解决了。 - crazy_p
5
太棒了!我在 React 上遇到了同样的问题。我只需要在重命名文件夹时停止服务器的运行,就可以解决问题了。 - Michel K
同样的问题,通过停止进程解决了,我正在使用nodemon。 - Muhammad Ibrahim
2
如果您正在打开文件,或者正在移动的目录中有文件处于打开状态,将会导致此错误。 - c0dezer019
有时候你只需要重新启动电脑,就可以让所有东西恢复正常工作。 - Bernard Agbemadon

32

我也遇到过这个问题。在我的情况下,原因似乎是“Angular语言服务”扩展。

我在扩展面板中禁用了它,然后就能立即重命名文件了。

不幸的是,当启用Angular语言服务器时,问题仍然存在。


1
我也是。我按照 Visual Studio Code 的建议安装了这个扩展,但禁用它后问题得到了解决。 - David
1
谢谢。我一直在盲目地禁用和重新启用所有扩展程序。这对我来说正是同样的问题。 - Jeremy
1
谢谢啊,卸载了那个扩展程序后,一切又恢复顺畅了。 - Mengnan
谢谢。关闭 Angular 语言服务解决了我的问题。 - DLO

15

在做 React 项目时,我遇到了同样的问题。起初,我以为需要给予管理员权限,但是这也没有奏效。后来,我发现我的项目是托管在本地主机上的。因此,如果你的项目正在运行,我们无法更改文件夹结构。在更新文件夹结构之前,你需要退出服务器。

解决方案:退出本地主机服务器,然后再试一次(适用于React和Angular用户)。你也可以尝试重新启动 VScode。


在我的情况下,我在一个单独的控制台上运行了一个 Vite 服务器,而不是在 VSCode 集成终端上运行,重新启动服务器解决了这个问题。 - undefined

12
我的解决方案是以管理员身份打开Vscode。

这只是在一些地方暂时解决了问题;但是如果你总是以管理员身份使用它来编辑或添加你自己拥有而不是管理员拥有的文件夹和文件,那么肯定存在一个问题,应该在不使用管理员权限的情况下解决;此外,你总是以管理员身份打开VSCode会给你的电脑和数据带来风险;你不能信任所有的扩展程序。 - undefined

6
在我的情况下,它是一个嵌套的文件夹。手动创建顶层文件夹并移动其内容是允许的...(导入仍然会自动更新)

4
我遇到的一个未在上面提及,但对我有帮助的解决方案之一是:禁用沙盒模式。 这个模式以前并没有启用过,但今天在重命名文件夹时遇到了问题,我发现我处于沙盒模式下,在设置中该模式被标记为默认。

VS Code settings screenshot


这是自古以来我第一次能够通过禁用此设置在vscode中重命名文件夹。令人难以置信的建议。 - Ibrahim ben Salah

4
如果你使用Jest VSCode扩展,并且测试文件位于你尝试重命名的文件夹中,那么在不禁用Jest运行程序的情况下可能无法正常工作。

确认了,在命令面板中使用“Jest: Stop All Runners”让我毫无问题地重命名了我的文件夹!(Windows 10专业版) - Joe Sadoski

3

只需关闭vscode并在文件资源管理器中执行任何文件操作即可。我仍然使用这种方式来重命名我的文件,也许这是一个未解决的错误。


3

我在运行Live Server扩展的实时服务器时遇到了Error: EPERM: operation not permitted, rename错误。停止实时服务器后,重命名操作就可以正常执行。


3
尽管听起来有些傻,但此错误也会在文件的“只读”标志被设置为任何原因时发生;在我的情况下,是将整个VSCode文件夹从只读主机共享复制到虚拟机中。无论您是否拥有完全管理权限,如果文件是只读的,则VSCode无法更改它。至于打开的文件,您可以使用SysInternals的Process Explorer工具查找哪个进程具有对特定路径或文件的打开句柄。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接