Visual studio code VS代码在哪里存储打开的文件列表?

Visual studio code VS代码在哪里存储打开的文件列表?,visual-studio-code,Visual Studio Code,我正在尝试在工作中和家中同步VS代码实例,包括打开的文件列表。 我知道同步设置有扩展名,但它们不包括打开的文件。 我不希望在运行实例下进行实时同步,但如果我重启两台机器并在它们上启动代码,我希望它们完全相同 目前,我在OneDrive上安装了一个可移植的代码,我也尝试将AppData\Roaming\Code移动到OneDrive,用指向此副本的符号链接替换实际目录 但是,当我在家里打开编辑器时,它仍然有自己的一组打开的文件 我试着使用ProcMon来了解它的来源,我试着阅读一些资料。似乎提问可

我正在尝试在工作中和家中同步VS代码实例,包括打开的文件列表。 我知道同步设置有扩展名,但它们不包括打开的文件。 我不希望在运行实例下进行实时同步,但如果我重启两台机器并在它们上启动代码,我希望它们完全相同

目前,我在OneDrive上安装了一个可移植的代码,我也尝试将AppData\Roaming\Code移动到OneDrive,用指向此副本的符号链接替换实际目录

但是,当我在家里打开编辑器时,它仍然有自己的一组打开的文件

我试着使用ProcMon来了解它的来源,我试着阅读一些资料。似乎提问可能更容易:-


顺便说一句,我正在我的项目的CodeGit文件夹中打开。这个文件夹在两台电脑上都位于同一路径上。

我很肯定你说的AppData\Roaming\Code是正确的。具体而言:

AppData\Roaming\Code\storage.json,并在该文件的windowsState部分。 AppData\Roaming\Code\Backups\workspace.json 在退出代码文件>退出之前,这些文件或至少是storage.json不会得到更新。如果您在工作机器上保持代码打开,并且在到达家庭机器时看不到更改,那么这可能就是您看不到预期更改的原因

Code/Atom还将状态信息存储在sqlite3数据库中,其中存储了大量状态信息:

AppData\Roaming\Code\Local Storage\file\uuuu 0.localstorage 使用SQLite浏览器工具(如)将其打开。您将在ItemTable表中看到许多熟悉的路径引用。列值显示为BLOB binary,但您可以单击任何行并将数据导出到文件。执行此操作并在文本编辑器中打开它,例如代码!:您将看到它只是一个JSON字符串


由于VS代码基于GitHub的Atom编辑器,因此使用Atom而非代码搜索问题通常会挖掘出您可能无法找到的信息。

我完全同意@Jonathan的观点,并希望添加更多内容

对于这个问题,打开的文件存储在文件\uuu0.localstorage中,它是一个sqlite文件。我只是写了一些代码来提取打开的文件列表。希望能有帮助

导入sqlite3 作为pd进口熊猫 导入json fn=rC:\Users\HelloWorld\AppData\Roaming\Code\Local Storage\file\uuu 0.localstorage conn=sqlite3.connectfn df=pd.read_sqlselect键,值为来自连接项表的值 df[v]=df.pop_value.maplambda x:x.decodeutf-16 应该仔细选择 已知\u文件\u已打开=numpy 已知\u文件\u已关闭=aws df_check=df[ df.v.str.containsknown\u文件\u已打开 &~df.v.str.containsknown\u文件\u已关闭 ] 断言lendf_检查==1 js=json.loadsdf_check.v.iloc[0] editors=js[groups][0][editors] 打印找到%d个编辑器%d个编辑器 路径=[] 对于编辑器中的编辑器: js@json=json.loadseditor[value] path=js_200;[resourceJSON][fsPath] 路径。追加路径 printFound打开的文件列表:\n%s%路径
您是否考虑过Visual Studio代码实时共享,看起来没那么麻烦我还没试过,但我怀疑它是否适合我。例如,如果托管计算机脱机怎么办?在Linux上,打开的文件列表可能保存在$HOME/.config/Code下的某个位置,该文件夹至少存在于我的Ubuntu 21.04笔记本电脑上。感谢提示,文件\uuu 0.localstorage是一个SQLite文件!本周五,我特别关闭了我的工作代码,将AppData\Roaming\Code复制到OneDrive,并试图让它在家里工作,但没有任何帮助。不过,我会做更多的实验……我记得关于奖金的事,并打算在奖金到期前完成我的研究:到目前为止,似乎打开了存储在file_u0.localstorage中的文件。明天我要做决定性的实验。那么,我学到了什么呢。昨天我家里的代码打开时没有打开任何文件。我打开了两个文件,关闭了编辑器,检查了文件\uuu0.localstorage现在与OneDrive副本不同。再次打开代码-与预期一样,打开了两个相同的文件。把它关上。重命名文件__0.localstorage,并从OneDrive中将其及其日志文件替换为put。再次打开代码-没有打开的文件。关闭编辑器。返回重命名的文件\uuu 0.localstorage。打开代码。还有我的两个打开的文件。到目前为止一切都很好。今天我开始工作,打开代码——有完整的打开文件列表,其中有几十个。这也是我在家里想要的。关闭编辑器,将AppData\Roaming\Code复制到OneDrive。回到家后,重命名了当前文件\uuu0.localstorage。已将目录从OneDrive复制到本地用户配置文件。打开的代码-没有打开的文件。返回重命名的文件\uuu 0.localstorage back-两个打开的文件。结论-确实打开了存储在file__0.localstorage中的文件,但还有更多。可能一些随机工作区ID是不同的或其他什么。谢谢你的回答,我会投赞成票,但没有悬赏。代码真的位于atom之上吗?我以为他们只是在引擎盖下共享电子。谢谢你,你能把它扩展一下吗 Linux也是如此吗?那太好了!在我的Ubuntu21.04笔记本电脑上,$HOME/.config/Code/Local Storage中没有文件\uuuu 0.localstorage。