VS Code - Error: EPERM: operation not permitted
VS Code - Error: EPERM: operation not permitted
在 Windows 10.
中使用 VS 代码时,我遇到了很多权限问题
- 尝试移动文件夹时:
- 错误:EPERM:不允许操作,重命名 'path a' -> 'path b'
- 删除文件夹时:
- 它无声地失败了,该文件夹已从解决方案资源管理器中删除,但它仍然存在于磁盘上。
有或没有管理员权限都无法使用。
我转到包含我所有存储库的文件夹,将所有权设置为我,对所有经过身份验证的用户应用完全控制,但它仍然不起作用。
有什么想法吗?
编辑:它有时确实有效,这就是它很奇怪的原因
我在 VS Code 中重命名或移动文件时遇到错误消息。
然后我注意到它在 Windows Explorer 中是一样的。
我在 Angular 中使用 Angular-CLI 进行开发,并在 cmd 中执行命令 ng build --watch
。
当我停止 watch 命令时,问题就解决了,我可以毫无问题地在 VS Code 中重命名和移动文件。
所以我认为有一些进程保存着您的文件。
希望对您有所帮助。
如果您正在开发 Firebase 应用并且之前有它的 Firebase 模拟器 运行,这可能会发生,因为当您按下 Ctrl+C
时,它们的模拟器可能 not completely shutdown。 windows 任务管理器 也没有人提到可以结束哪个后台进程。
简而言之,当出现此问题时,一定是某种 CLI 或 Extension 占用了资源。
解决方案:重新启动 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
在 Windows 10.
中使用 VS 代码时,我遇到了很多权限问题- 尝试移动文件夹时:
- 错误:EPERM:不允许操作,重命名 'path a' -> 'path b'
- 删除文件夹时:
- 它无声地失败了,该文件夹已从解决方案资源管理器中删除,但它仍然存在于磁盘上。
有或没有管理员权限都无法使用。
我转到包含我所有存储库的文件夹,将所有权设置为我,对所有经过身份验证的用户应用完全控制,但它仍然不起作用。
有什么想法吗?
编辑:它有时确实有效,这就是它很奇怪的原因
我在 VS Code 中重命名或移动文件时遇到错误消息。 然后我注意到它在 Windows Explorer 中是一样的。
我在 Angular 中使用 Angular-CLI 进行开发,并在 cmd 中执行命令 ng build --watch
。
当我停止 watch 命令时,问题就解决了,我可以毫无问题地在 VS Code 中重命名和移动文件。
所以我认为有一些进程保存着您的文件。 希望对您有所帮助。
如果您正在开发 Firebase 应用并且之前有它的 Firebase 模拟器 运行,这可能会发生,因为当您按下 Ctrl+C
时,它们的模拟器可能 not completely shutdown。 windows 任务管理器 也没有人提到可以结束哪个后台进程。
简而言之,当出现此问题时,一定是某种 CLI 或 Extension 占用了资源。
解决方案:重新启动 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