7

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

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

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

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

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

4

3 回答 3

6

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

不是我知道的,但是根据您概述的用例细节的优先级,可能仍然有两个选项可以近似预期的结果:

通过组策略

请注意,此基本内容扩展/详细说明了 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

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

通过骇人听闻的解决方法

鉴于您的说法,我们作为磁盘提供商只能处理我们自己的磁盘可能会有一个骇人听闻的解决方法,尽管我担心它缺少最后一英里(未经我自己测试)。

从 Chris W. Reas 自己的答案开始,我如何在 Windows Vista 和 Windows 7 中抑制那些烦人的 Thumbs.db 文件?

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

从那里继续,Wil声称以下潜在的聪明解决方案可以在每个文件夹的基础上工作:

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

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

祝你好运!

于 2010-09-30T23:28:50.323 回答
1

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

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

于 2010-09-25T10:06:10.397 回答
1

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

于 2010-09-30T23:32:55.197 回答