全部
我正在尝试将AppData\Local
、AppData\Roaming
和移动AppData\LocalLow
到我的 D: 驱动器。
我知道微软不建议这样做,但如果开发人员倾向于不在这些目录中存储所有数据,我会很好。无论如何,我在那里存储了 GIG 的数据,而我的 C: 驱动器只应该容纳我的操作系统。
我创建了一个新的管理用户,将每个文件夹的所有内容复制到另一个驱动器上的相应文件夹中。然后我使用命令mklink /j C:\Users\my-user\AppData\<folder> D:\Users\my-user\AppData\<folder>
分别为每个文件夹建立一个连接(因为我似乎无法完成整个 AppData 目录。LocalLow
并且似乎每个都做得很好。但如果不完全弄乱我的任务栏/开始菜单(例如它),我Roaming
似乎无法移动Local
不会打开开始菜单、搜索菜单、cortona。我无法右键单击图标查看选项,我无法打开通知栏、音量菜单或网络菜单。但奇怪的是,我可以打开进程菜单,所以就是这样)。
我找到了一个 ps 命令来安装开始菜单主机和 cortana,但似乎找不到运行任务栏的所有其他必要程序,我担心如果我找到它们,我将永远丢失一个或另一个。
复制本地文件夹后,每个开始菜单和 cortona 文件夹中似乎都缺少文件......所以我认为这就是它不起作用的原因。
我将尝试更文字的递归副本并对其进行比较以确保没有文件丢失。如果它有效,请回到这里。与此同时,还有其他可能出错的地方吗?权限?有没有更好的方法来做到这一点我不知道?
什么问题?
Copy-Item -Recurse -Force
所以,我发现在 powershell中做错了什么。此复制调用将交汇点复制为空文件夹(没有意识到它们是交汇点)。您可能可以在原始交汇点将您带到的任何地方创建一个交汇点并将其Local
放在另一个驱动器上的文件夹中,我毫不怀疑这会起作用,但这似乎也是很多额外的不稳定工作。您也不能创建符号链接或连接到另一个交汇点......所以修复是不可能的。此外,复制项不会像隐藏文件夹那样维护文件属性,这并不可怕,因为路径没有改变,但这只是另一个文件差异。也许robocopy
会做我想做的……但在这一点上……我认为这不值得。虽然这个问题与权限无关,但我同意@Daniel B 在我原来的帖子中的评论。我可能不应该弄乱这些文件夹,你也不应该。
我的解决方案
我将提出一个我保证使用的解决方案...当安装程序为您提供不使用用户的 AppData 文件夹的选项时,请选择该选项。对于那些不这样做的程序,我会留意我的 AppData 文件夹的大小。当我看到一个来自我安装的程序的文件夹时,我会将它移动到该驱动器并在它以前存在的位置创建一个连接。这应该是相对安全的(至少不会破坏您的 PC)。
作为对开发人员的说明,不要将 AppData 用于整个应用程序的存储空间。这很烦人。