如何告诉 Windows 资源管理器不要请求特定文件夹中的文件详细信息和缩略图?

Posted

技术标签:

【中文标题】如何告诉 Windows 资源管理器不要请求特定文件夹中的文件详细信息和缩略图?【英文标题】:How to tell Windows Explorer not to request file details and thumbnails in certain folder? 【发布时间】:2011-04-15 10:24:58 【问题描述】:

有没有办法(通过外壳扩展或注册表设置)告诉 Windows 资源管理器它不应该读取正在显示的文件夹中的文件以提取元数据或创建缩略图?

问题在于,当用户导航到文件夹时,Windows 资源管理器会尝试读取文件夹中的所有文件并从中提取某些元数据。如果介质很慢,这会花费很长时间并导致文件系统上不必要的负载。在缩略图的情况下尤其如此,当读取整个图形文件时。

我正在寻找在代码中执行此操作的方法(限制资源管理器),因此“不要使用缩略图模式”不是可接受的答案:)。

更新:不幸的是,每个用户的设置不起作用,因为我们作为磁盘提供商只能处理我们自己的磁盘(并且用户可能希望对常规磁盘和虚拟磁盘进行单独的设置)。我相信必须有某种方法来“解释”驱动器速度慢的操作系统。

也许我们需要处理一些驱动程序级别的 IRP 来告诉操作系统介质很慢?

【问题讨论】:

我记得在 Win 95/98 中看到了一个 reg 设置(所以有一个),但我从未见过 Vista/7 的等价物。 @slugster 收集元数据和显示缩略图的功能只出现在 XP 中(如果有记忆的话),因此在 Win95/Win98 中可能没有这样的设置。 IE。也许那里有一些设置,但它与其他一些功能有关。 @Eugene,我的记忆力可能很差,很可能是 XP,而不是 95/98,但肯定有。很久以前,我在一篇硬核 hacks 类型的文章中读到过它,我记得当时想“嘿,这很酷”,但我从来没有需要使用它。 什么版本的 Windows? 这是一种 hack,但您可以在每个文件上设置 FILE_ATTRIBUTE_OFFLINE 标志; Explorer 不会为离线文件加载所有额外的内容。缺点是文件会有一个丑陋的图标覆盖,但我认为没有一种可插入的方式来做你想做的事。还有一个 PathIsSlow 函数;也许 Explorer 以类似的方式尊重这一点,因此可能值得研究它是如何工作的。 【参考方案1】:

有没有办法(通过外壳扩展或 注册表设置)告诉 Windows Explorer 它不应该读取文件 在显示的文件夹中,以便 提取元数据或创建缩略图?

我不知道,但根据您在那里概述的用例细节的优先级可能仍然有两个选项可以近似获得所需的结果:

通过组策略

请注意,此重要内容扩展/详细说明了 Freds 答案的网络文件夹相关方面,您在更新中忽略了该方面;但是,您声称能够部署 shell 扩展或注册表设置,并且以下两个组策略只需通过管理方式执行后者:

User Configuration -> Administrative Templates -> Windows Components ->  Windows Explorer:

Turn off the display of thumbnails and only display icons **on network folders**
Turns off the caching of thumbnails in hidden thumbs.db files.

这归结为以下注册表设置:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer]
"DisableThumbnailsOnNetworkFolders"=dword:00000001
"DisableThumbsDBOnNetworkFolders"=dword:00000001

当然这仍然不是每个文件夹,但至少仅限于网络文件夹并忽略常规磁盘和虚拟磁盘。

通过 hackish 解决方法

鉴于您的陈述我们作为磁盘提供商只能处理我们自己的磁盘可能是一个hackish 解决方法,但我担心它缺少最后一英里(未经我自己测试)。

从 Chris W. Reas 开始对How can I suppress those annoying Thumbs.db files in Windows Vista and Windows 7? 的回答:

另外值得了解的是:在 Vista 和 Windows 7 中,Thumbs.db 仅适用于网络文件夹。对于本地文件夹,Vista 和 Windows 7 将缩略图缓存信息保存到位于“%userprofile%\AppData\Local\Microsoft\Windows\Explorer”的本地文件夹中的数据库中

从那里继续,Wil claims the following potentially clever solution在每个文件夹的基础上工作

转到驱动器并创建一个名为 thumbs.db 的文件(在记事本或任何东西中),然后更改所有人(包括 SYSTEM)对该文件的权限以拒绝所有。

不幸的是,除了在每个文件夹中创建虚拟 thumbs.db 的自动化要求之外,结果取决于资源管理器将如何对不可访问的文件做出反应 - 因为根据组策略缓存是可选的,它还不如显示缩略图而不缓存它们,从而使带宽问题变得更糟...

祝你好运!

【讨论】:

【参考方案2】:

我不确定您是否可以禁用某些文件夹的缩略图生成/显示,但this 文章谈到了一个可以通过上下文菜单快速禁用它的脚本。

脚本修改注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ 中的值。我想你可以在其他元数据的那个键中找到类似的东西。 ShowInfoTip 听起来很有希望。附近的其他按键中可能有相关信息。

【讨论】:

【参考方案3】:

根据您的需要,这可能是一个完全无法回答的问题,但是如何存储操作系统想要制作缩略图的没有文件扩展名的文件呢?称它为file.jpg.abc,它肯定不会读取缩略图。

【讨论】:

+1 一个技巧,虽然我认为浏览磁盘的全部意义在于对文件做一些事情(打开它们,复制它们等),并且轻松做到这一点的可能性还取决于文件扩展名。 是的,如果文件需要正常并且可以从文件系统访问,那么这不是一个选项。

以上是关于如何告诉 Windows 资源管理器不要请求特定文件夹中的文件详细信息和缩略图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 资源管理器中刷新文件的缩略图?

如何优雅地使用 Windows

alt+f4无法关闭此窗口,如何解决?我说的是快捷键关闭此窗口,不要告诉我点击确定、任务管理器啥的!

如何启动windows资源管理器

Sql Server 配置管理器无法打开(无法连接到WMI提供程序)怎么办(不要重装)?

电脑中的开始-运行和任务管理器的进程是怎么用的