VS Code - Error: EPERM: operation not permitted

VS Code - Error: EPERM: operation not permitted

在 Windows 10.

中使用 VS 代码时,我遇到了很多权限问题
  1. 尝试移动文件夹时:
    • 错误:EPERM:不允许操作,重命名 'path a' -> 'path b'
  2. 删除文件夹时:
    • 它无声地失败了,该文件夹已从解决方案资源管理器中删除,但它仍然存在于磁盘上。

有或没有管理员权限都无法使用。

我转到包含我所有存储库的文件夹,将所有权设置为我,对所有经过身份验证的用户应用完全控制,但它仍然不起作用。

有什么想法吗?

编辑:它有时确实有效,这就是它很奇怪的原因

我在 VS Code 中重命名或移动文件时遇到错误消息。 然后我注意到它在 Windows Explorer 中是一样的。

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

当我停止 watch 命令时,问题就解决了,我可以毫无问题地在 VS Code 中重命名和移动文件。

所以我认为有一些进程保存着您的文件。 希望对您有所帮助。

如果您正在开发 Firebase 应用并且之前有它的 Firebase 模拟器 运行,这可能会发生,因为当您按下 Ctrl+C 时,它们的模拟器可能 not completely shutdown。 windows 任务管理器 也没有人提到可以结束哪个后台进程。

简而言之,当出现此问题时,一定是某种 CLIExtension 占用了资源。

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

在我的例子中,它是一个嵌套文件夹。允许手动创建顶级文件夹并移动其内容...(导入仍会自动更新)

如果您使用 Jest VSCode 扩展,并且您尝试重命名的文件夹中有一个测试文件,如果不禁用 Jest 运行程序,它可能无法工作。

虽然听起来很愚蠢,但当文件的 'read-only' 标志因任何原因被设置时也会发生此错误;在我的例子中,它是将整个 VSCode 文件夹从 read-only host-share 复制到虚拟机。无论您是否拥有完全管理员权限都没有关系,如果文件是 read-only VSCode 则无法更改它。对于打开的文件,您可以使用 SysInternals 的 Process Explorer 工具找出哪个进程具有特定路径或文件的打开句柄。

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

解决方案:退出 Localhost 服务器并重试(对于 React 和 Angular 用户)。您也可以尝试重新启动 VScode.

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

我在 Live Server extension 运行 的实时服务器上遇到了 Error: EPERM: operation not permitted, rename。停止实时服务器后,可以再次进行重命名操作。

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

我也有这个问题。在我的案例中,原因似乎是“Angular 语言服务”扩展。

我在扩展面板中关闭了它,并且能够立即重命名该文件。

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

只是补充一下这个答案墙,这显然是一个非常依赖上下文的问题,我最初认为这与 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);
  }

现在可以使用了:)

我在 VSCode 和 Angular 中遇到了同样的问题。我正在尝试重命名组件文件夹。

我的解决方案是 从 folder_to_rename/dist/ 文件夹中删除已编译的 Angular (.js) 文件。之后,我可以毫无问题地重命名父文件夹。

我在 React Native 中开发时也遇到了这个错误,这是因为该应用程序 运行 并不断监听代码中的更改。终止 Metro 成功了。

"C:\Users{username}" 如果您没有看到此路径下的 .vscode 文件夹,这可能是您的问题。使 .vscode 文件夹可见将解决您的问题。它对我有用。如果您不知道如何使其可见,请按照以下步骤操作。 see hidden files 使文件夹从此 link 可见,然后右键单击文件夹,弹出菜单中的 select 属性,选中弹出菜单中隐藏旁边的框 window,然后单击确定。 你的问题应该已经解决了。

就我而言,我尝试将 React 个包移动到我在 VS Code 中创建的新文件夹中,但错误消息仍然存在。

我通过关闭应用 运行 所在的 google-chrome browser 解决了这个问题。

我又试了一次,成功了:)

您可能已经隐藏了文件夹。vscode

C:\Users\%Username%\.vscode