编辑:

编辑:

这是一个老问题,可以追溯到 Windows XP,现在在我的 Windows 7 64 位系统上,当涉及到详细信息、列表、图标等时,文件夹视图设置开始丢失,其他所有内容的位置和大小都稳定。我倾向于在大多数情况下使用详细信息视图,现在文件夹有时开始恢复为图标视图,请注意,不是 100% 的时间,但我使用 PC 越多,这种情况似乎就越频繁。

是的,我确实有数千个文件夹,所以我认为默认缓存大小已用完,这与我在使用 Windows XP 时遇到的问题完全相同。

我似乎无法找到关于在 Windows 7 64 位注册表中查找文件夹视图缓存设置的明确说明,针对 XP(我过去使用过)、Vista 和一些 Beta/RC Windows 7 有大量的答案。

我确实找到了本文来自微软。

在 Windows 7 64 位的“让我自己修复”部分中,我没有子项Local SettingsWow6432Node根据微软文章中的密钥。

HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Local Settings
\Software\Microsoft\Windows\Shell\Bags

但我确实有这把钥匙。

HKRU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell
\Bags\BagsMRU

扫描注册表中的BagMRU Size值(不是键)没有结果。我猜想 Windows 7 默认不再使用此值。

有什么建议可以在不完全重置整个资源管理器文件夹设置的情况下增加视图设置的缓存大小?

有谁知道 W7 允许的最大稳定缓存大小是多少?以及在哪里更改/添加此值。


编辑:

我找到了 Vista 和 XP 时代的旧笔记,但已不再有参考链接。

Windows Vista

HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell

创建一个 32 位 DWord BagMRU Size,并将十进制值设置为10,00020,000

有时文件夹设置会损坏。使用regedit查看

HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell

点击Bags并选择编辑>删除>是的BagMRU。也删除该项,然后重新启动。

Windows XP

Windows XP SP2 修复:默认情况下,SP2 的文件夹缓存设置为 5,000 个文件夹,以记住每个文件夹的视图设置,如果您的文件夹超过 5,000 个(所有硬盘驱动器的总数),则必须更改注册表并将其增加到最大值 8,000。要执行此操作,请依次单击“开始”-“运行”-“regedit”并导航到这两个文件夹

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell

然后去

HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam

在右侧窗格中查找并BagMRU size右键单击调整并选择十进制并设置值数据8,000。在两个位置都执行此操作,重新启动即可生效。


我将在接下来的几天内进行实验并报告任何启发。

答案1

分析

使用进程监控在 Windows 7 x64 上,当我重新启动资源管理器并随机浏览时,会看到以下内容:

  • 访问
    HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags

  • 访问
    HKCU\Software\Microsoft\Windows\Shell\Bags

  • 访问
    HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU Size

    (我的电脑上没有这个,但是我请求它)

  • 访问
    HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU

  • 访问
    HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\Directory\OpenWithList\MRUList

    (我的电脑上没有这个,但是我请求它)

结论

所以,我们%WINDIR%\Explorer.exe只能访问我们的包的 64 位密钥。

然而,密钥Wow6432Node被访问当您使用 时%WINDIR%\SysWOW64\explorer.exe
可能会有一些使用 32 位资源管理器的上下文,因此请谨慎使用。例如,当从 32 位上下文启动它时,或者当您从文件对话框启动 Windows 资源管理器时。

要清除 Bag 信息,确实只需重新创建BagsBagMRU文件夹即可:

  • HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\

尽管较少使用,但重新创建以下Bags文件夹可能会有所帮助:

  • HKCU\Software\Microsoft\Windows\Shell\

请求的值BagMRU Size是,因此缺少该键并不是一件好事。这可能会导致未定义的行为,但我大胆猜测它只是在代码中使用了默认值。为了确保运行速度不会超过限制,您可以在以下键中用较大的数字定义 DWORD 值:

  • HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU Size

最后一个访问的键是当您使用 打开 时MRUListExplorer.exe我认为永远不需要这个键,因为Most Recently Used List除了在“开始菜单”之类的东西中显示它之外,没有打开 这样的操作。所以没有必要创建该键。

有什么建议可以在不完全重置整个资源管理器文件夹设置的情况下增加视图设置的缓存大小?

我想说,您只能BagMRU Size在假设您的 Bags 设置没有损坏的情况下创建和增加设置...我已经回答了您问题下的另一个问题。

答案2

确实,这是一个令人恼火的问题。根据我的经验,一旦这个缓存满了,Windows 就不会删除最旧的条目,也不会记住新文件夹的设置……

好消息,看来我们可以在 Windows 7 中增加 5000 个条目的默认值。
请参阅此文章:修复:Windows 忘记文件夹视图设置

  • 导航HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell
  • 在右侧窗格中,“右键单击 > 新建 > DWORD(32 位)值”。将其命名为BagMRU Size
  • 对于值,选择十进制并输入例如10000(或十六进制基类型2710)。
  • 重启。


这些条目存储在这两个键下:

  • HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
  • HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags

要清空缓存,您只需删除这两个键即可。


您还可以查看这个 NirSoft 实用程序来查看缓存状态:ShellBags查看

答案3

Windows 7 64 位版本使用 Wow6432 注册表项来为在 64 位版本的 Windows 上运行的 32 位应用程序提供 HKEY_LOCAL_MACHINE\SOFTWARE 的单独视图。由于您可能正在使用 64 位 Explorer,因此我认为它不适用于您的情况。

对文件夹的大小、视图、图标或位置所做的更改会丢失,为了增加文件夹视图的限制,请尝试此脚本:

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\ShellNoRoam\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\ShellNoRoam\Bags]
[-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU]
[-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags]
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Local Settings\Software\Microsoft\Windows\Shell\Bags]
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Local Settings\Software\Microsoft\Windows\Shell\BagMRU]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell]
"BagMRU Size"=dword:00001f40
[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam]
"BagMRU Size"=dword:00001f40
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoSaveSettings"=dword:00000000]

如果这不起作用,您是否执行了引用的 Microsoft 文章中的所有说明?它包含适用于 Windows 7 的通用说明,并且此外更多关于 64 位版本的说明(更多涉及您很可能不会使用的 32 位版本的 Explorer)。

编辑

我发现这篇 MS 文章似乎可以解决您的问题:
对文件夹的大小、视图、图标或位置所做的更改会丢失
它还包含一个 FixIt,可能会为您完成工作,但最好在运行它之后进行验证(在 IE 中)。

如果 FixIt 设置的“BagMRU Size”不够,你可以再增加一点。文章中说的是 5000,所以你可以试试 10000。

相关内容