清空Visual Studio Code的workspaceStorage文件夹会有什么影响?

9

我经常使用Visual Studio Code在Windows 10上进行C++开发。我的开发计算机硬盘容量有限,因此经常会出现“磁盘空间不足”的警告。

通过使用优秀的WinDirStat工具进行分析,发现%APPDATA%\Code\User\workspaceStorage包含数百MB的数据。有几十个随机的32字符文件夹(例如“9731bc4ee103e04b5a91aff76967e74b”),每个文件夹都包含.\ms-vscode.cpptools\.BROWSE.VC.DB文件,这些文件通常大于30 MB。

这些文件,或者更好的是整个%APPDATA%\Code\User\workspaceStorage文件夹,是否可以在Windows启动时使用批处理脚本安全删除?


2
你可以将设置 C_Cpp.intelliSenseCacheSize 设为 0,以便消除所有缓存。 - rioV8
@rioV8:这样做会完全禁用Intellisense吗?这似乎是一个bug(或者可能是懒惰的编程),因为VS Code在退出后仍然保留过时的缓存文件。每个会话似乎都会重新创建一个新的缓存。为什么不重复使用通用缓存,在关闭VS Code时删除当前缓存或在启动VS Code时删除过时的缓存呢? - AlainD
我使用这个设置并且没有任何问题。否则我的磁盘会充满缓存文件。请在CPP语言扩展处提交错误报告/功能请求。 - rioV8
有点离题,但你也可以试试WizTree,它可以在几秒钟内扫描NTFS磁盘。 - Sreenikethan I
2个回答

3
那些位于workspaceStorage/文件夹中的文件存储了每个工作区的工作区状态/缓存信息,例如启用的扩展、资源管理器树的状态、打开的编辑器以及所在的编辑器组,以及特定于扩展的状态/缓存信息等。我相信您可以安全地删除这些文件夹,甚至整个workspaceStorage文件夹 - 只需知道该状态/缓存信息将被清除/“重置”。
截至目前,VS Code存在一个问题,即它不会删除不再存在的工作区的workspaceStorage文件夹。请参阅此问题票:[Cleanup ExtensionContext.workspaceState when a workspace no longer exists #32461](https://github.com/microsoft/vscode/issues/32461)。我还看到有一个扩展可以帮助清理这些残留的文件夹:mehyaa.workspace-storage-cleanup (我与该扩展无关)
至于vscode-cpptools扩展生成的.browse.vc.db文件,有一些问题票与空间占用和磁盘写入相关。
  • 修复浏览数据库意外变大问题(#9837) #9881
  • 已关闭“browse.VC.DB”引起的问题,不断写入磁盘(虚幻引擎项目)(#7849)
  • 巨大的 .browse.VC.db 文件(#150)
  • 限制 .browse.VC.db 的大小以避免磁盘空间被填满(#3470)
  • 如评论中所述,有一个名为 C_Cpp.intelliSenseCacheSize 的设置可以限制 vscode-cpptools 扩展的某种类型与智能感知相关的缓存文件的大小,但如果我理解正确,那种类型的缓存文件与 .browse.vc.db 文件不同。


    -1

    您可以更改数据库文件的存储路径。之后,我认为数据库文件可以安全删除。

    将以下内容添加到全局 settings.json 文件中:

    "C_Cpp.default.browse.databaseFilename": "${workspaceFolder}/.vscode/.BROWSE.VC.DB"

    在此 查看更多详细信息。

    顺便说一下,您还可以设置 "C_Cpp.intelliSenseCachePath" 来更改 IntelliSense 缓存路径。 从这个 问题官方文档 中了解更多信息。


    这个回答如何回答问题? - starball

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