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 任务管理器中结束哪个后台进程。

简而言之,当这个问题发生时,一定是某种 CLIExtension 占用了资源。

解决方案:重新启动电脑并再次尝试重命名或删除您的文件夹,它应该可以工作。

【讨论】:

【参考方案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”(本机)

npm 错误!错误:EPERM:不允许操作,重命名

错误:EPERM:Bitbucket 管道中不允许操作

npm publish 导致'错误:EPERM:不允许操作,取消链接...',errno -4048

Npm 安装错误 EPERM 操作不允许

EPERM,不允许操作错误,配置存储