从资源管理器的Shell扩展更改文件(如名称)的显示信息

3
我目前正在与一家中国SMB服务器合作,几乎所有公司文件都存储在其中。由于结构不会改变,我希望能够基于规则在文件上放置一个“标签”(例如允许我处理生成的文件,其中包括日期)。我只需要支持win7及以上版本,并且希望我的信息从文本文件中读取,而不是依赖于某些元数据或客户端数据。
因此,我考虑编写一个shell扩展来完成这项工作。我的问题是,通过查看文档,我没有找到可以更改名称的内容。到目前为止,我找到的最好的解决方案是使用infotip处理程序,但我想知道是否有更好的方法来实现这一点。
简而言之,它需要:
1)与win7(及以上版本)兼容,
2)一眼可见
3)使用只读文件系统

你的标签需要多少文本?你可能可以更改图标? - Stobor
不多,因为这只是“名称翻译”。所以255个字符以下就足够了。关于图标,您是指使用IExtractIcon吗?如果是这样,我没有看到任何限制,所以我想这应该没问题。 - Geod24
是的,这就是我想说的,要么是IExtractIcon,要么是IShellIconOverlayIdentifier。不过,在“小图标”、“列表”或“详细信息”视图中显示的图标可能不足以清晰地显示20个以上字符的文件名。 - Stobor
1个回答

2
经过广泛的研究,我发现最好的方法是编写一个Shell Namespace扩展

我将能够提供代表我的服务器结构的虚拟目录,并以我想要的方式进行翻译。

虽然这似乎有点过度,但没有其他方法可以更改显示的信息,因为显示名称由IShellFolder管理,该文件夹将其提供给IShellView

我发现了一个关于它的绝佳信息来源,迄今为止最新的是Michael Edenfield博客上的一篇文章


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接