簡體   English   中英

VS 代碼 - 錯誤:EPERM:不允許操作

[英]VS Code - Error: EPERM: operation not permitted

在 Windows 10 中使用 VS 代碼時,我遇到了很多權限問題。

  1. 嘗試移動文件夾時:
    • 錯誤:EPERM:不允許操作,重命名“路徑 a”->“路徑 b”
  2. 刪除文件夾時:
    • 它無提示地失敗,該文件夾已從解決方案資源管理器中刪除,但仍保留在磁盤上。

無論有沒有管理員權限,它都不起作用。

我轉到包含我所有回購協議的文件夾,將所有權設置為我,對所有經過身份驗證的用戶應用完全控制,但它仍然不起作用。

在此處輸入圖像描述

任何的想法?

編輯:它有時確實有效,這就是讓它變得很奇怪的原因

在 VS Code 中重命名或移動文件時遇到錯誤消息。 然后我注意到它在 Windows Explorer 中是一樣的。

我使用 Angular-CLI 在 Angular 中進行開發,並在 cmd 中執行命令ng build --watch --watch。

當我停止 watch 命令時,問題就解決了,我可以在 VS Code 中重命名和移動文件,沒有任何問題。

所以我認為有一些進程可以保存你的文件。 我希望這會有所幫助。

我也有這個問題。 就我而言,原因似乎是“Angular Language Service”擴展。

我在擴展窗格中殺死了它,並且能夠立即重命名文件。

不幸的是,啟用 Angular 語言服務器后問題仍然存在。

我在做一個反應項目時遇到了同樣的問題。 起初,我以為我需要授予管理員權限,但這也沒有用。 后來我發現我的項目托管在我的localHost上。 因此,如果您的項目正在運行,我們無法更改文件夾結構。 您需要在更新文件夾結構之前退出服務器。

解決方案:退出本地主機服務器並重試(適用於 React 和 Angular 用戶)。 您也可以嘗試重新啟動 VScode。

如果您使用 Jest VSCode 擴展並且測試文件位於您嘗試重命名的文件夾中,則在不禁用 Jest 運行程序的情況下它可能無法工作。

對我有用的解決方案是以管理員身份打開 Vscode。

只需關閉 vscode 並在文件資源管理器中執行任何文件操作。 我仍然使用這種方式重命名我的文件,也許這是一個未解決的錯誤。

如果您正在開發 Firebase 應用程序並且之前運行了其 Firebase 仿真器,則可能會發生這種情況,因為當您按Ctrl+C時,他們的仿真器可能不會完全關閉 也沒有人提到在 windows任務管理器中可以結束哪個后台進程。

簡而言之,當這個問題發生時,一定是某種CLI擴展程序占用了資源。

解決方案:重新啟動 PC 並再次嘗試重命名或刪除您的文件夾,它應該可以工作。

聽起來很愚蠢,當文件的“只讀”標志因任何原因設置時也會發生此錯誤; 就我而言,它是將整個 VSCode 文件夾從只讀主機共享復制到 VM。 無論您是否擁有完整的管理員權限,如果文件是只讀的,VSCode 就無法更改它。 至於打開的文件,您可以使用 SysInternals 的 Process Explorer 工具來找出哪個進程具有特定路徑或文件的打開句柄。

我遇到了Error: EPERM: operation not permitted, rename在運行Live Server 擴展的實時服務器時重命名。 停止實時服務器后,重命名操作再次成為可能。

就我而言,它是一個嵌套文件夾。 允許手動創建頂級文件夾並移動其內容...(導入仍會自動更新)

只是為了添加到這個答案牆,這顯然是一個非常依賴於上下文的問題,我最初認為這與 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);
  }

它現在可以工作了:)

我在帶有 Angular 的 VSCode 中遇到了同樣的問題。 我試圖重命名組件文件夾。

我的解決方案是從 folder_to_rename/dist/ 文件夾中刪除已編譯的 Angular (.js) 文件 之后,我可以毫無問題地重命名父文件夾。

我在 React Native 中開發時也遇到了這個錯誤,這是因為應用程序正在運行並不斷監聽代碼的變化。 終止地鐵工作。

"C:\Users{username}" 如果您在此路徑下看不到 .vscode 文件夾,這可能是您的問題。 使 .vscode 文件夾可見將解決您的問題。 它對我有用。 如果您不知道如何使其可見,請按照以下步驟操作。 查看隱藏文件通過此鏈接使文件夾可見,然后右鍵單擊該文件夾,從彈出菜單中選擇 select 屬性,選中彈出窗口 window 中隱藏旁邊的框,然后單擊確定。 你的問題應該得到解決。

就我而言,我嘗試將React包移動到我在VS Code中創建的新文件夾中,但錯誤消息仍然存在。

我通過關閉運行應用程序的google-chrome browser解決了這個問題。

我又試了一次,它奏效了:)

你可能已經隱藏了 folder.vscode

C:\Users\%Username%\.vscode
  1. 如果文件/文件夾被重命名或移動,請將它們打包到以前的狀態。
  2. 禁用和啟用Angular 語言服務擴展。
  3. 重新運行“ng serve”或“ng build”

注意:確保擴展已更新。

無需完全按照上面的建議卸載或禁用擴展。


Angular 15.0
Angular Language Service v15.0.2
VSCode 1.73.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM