c# - 从 explorer.exe 的 shell 扩展更改文件的显示信息(如名称)

标签 c# windows-shell

我目前正在使用中国的 SMB 服务器,几乎所有的公司文件都存储在该服务器上。 由于结构没有改变,我希望能够根据规则在文件上放置一个“标签”(允许我处理生成的文件,例如包括日期)。 我只需要支持 win7 及更高版本,我希望我的信息可以从文本文件中读取,而不是依赖于某些元数据或客户端数据。

所以我想到编写一个 shell 扩展来完成这项工作。我的问题是,通过查看 the documentation ,我没有找到允许我更改名称的东西。到目前为止,我找到的最佳解决方案是使用 the infotip handler , 但我想知道是否有人有更好的方法来做到这一点。

简而言之,它需要:

1)为兼容win7(及以上),

2)第一眼可见

3) 使用只读文件系统

最佳答案

经过大量研究,我发现最好的方法是写一个 Shell Namespace extension .

我将能够提供一个代表我的服务器结构的虚拟目录,并按照我想要的方式翻译名称。

虽然这看起来有点矫枉过正,但没有其他方法可以更改显示的信息,因为显示名称由 IShellFolder 管理。它将它提供给 IShellView

我找到的一个极好的信息来源,也是迄今为止最新的信息来源,是 an article on Michael Edenfiled's blog

关于c# - 从 explorer.exe 的 shell 扩展更改文件的显示信息(如名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17396185/

相关文章:

c# - 如何获取有关异常的更多信息

c++ - 注册 Microsoft All-In-One 框架提供的 Windows 上下文菜单处理程序(CppShellExtContextMenuHandler 项目)

c++ - 我可以区分单击和双击系统托盘图标吗?

javascript - 使用 WScript.shell 写入文件

c# - 显示多个项目的 Windows 上下文菜单

c# - 仅在我的应用程序中添加到 shell 上下文菜单

c# - 如何跨多维数组(linq 或简单算法)中的列运行逻辑 'xnor'?

具有嵌套数字格式的 C# String.Format

c# - XDocument.Root.Element 返回 null

c# - 在 C# 中使用语句和 await 关键字可以很好地发挥作用