我最近安装了两款老款 PC 游戏:Elder Scrolls Morrowind 和 Battlefield 2 :) 但是当我开始寻找 Morrowind 保存文件时,却无法在通常的位置(例如 Documents 文件夹)找到它。我不得不搜索整个 C 盘,最终发现这两款游戏的保存文件存储在 C:/.../AppData/Local/VirtualStore/Program Files (x86)/ 中。这些游戏针对的是 Windows 2K/XP,而我在 8.1 上玩它们。这些文件的位置和文件夹名称“VirtualStore”表明存在某种模拟。是这样吗?
答案1
自从 Windows Vista 以来,那些没有以提升的权限运行并试图写入 Program Files(或 Program Files (x86))文件夹的应用程序实际上会在不知情的情况下写入 VirtualStore 文件夹。
微软认为这比程序故障(由访问限制引起)要好。事实上,由于这一点,大多数将其设置保存在 Program Files 文件夹中的旧程序将继续在 Windows Vista+ 上运行,并且每个用户都会获得自己的设置,作为奖励,尽管原始软件制造商没有想到这一点。
答案2
我认为从 Vista 开始,Windows 版本就开始锁定对 Program Files 的写入权限,因为默认情况下用户不再是管理员。为了使需要用户成为管理员的旧应用程序继续工作,注册表和文件系统虚拟化应运而生。正如您所见,对受保护位置的写入和读取被透明地重定向到用户特定的位置。