【问题标题】:How to create extended (custom) file property in Windows?如何在 Windows 中创建扩展(自定义)文件属性?
【发布时间】:2012-11-13 16:10:49
【问题描述】:

我们有一个专有的文件格式,其中嵌入了product-code

我刚刚开始走“让最终用户在打开文件时按product-code 排序/过滤”的路径。

对我们而言,最简单的方法可能是在我们自定义的“打开文件”对话框中添加另一个下拉菜单,在其中选择 product-code 进行过滤。

但是,我认为如果我们可以将此信息作为此文件类型的详细信息视图中的一列显示,这可能对最终用户更有用 - 就像名称、修改日期、类型、大小等一样,也是文件类型的详细属性(或者可能是所有文件的通用属性)。

我的模糊理解是,XP 和以前的 Windows 操作系统在 NTFS 的备用数据流中嵌入了某种类似的元数据。但是,从 Vista 开始,Microsoft 停止使用备用数据流,因为它们依赖于 NTFS,因此很脆弱(即无法通过文件附件发送,无法移动到 FAT 格式的拇指驱动器等)

我需要知道但还没有弄清楚的事情:

  1. 是否可能/是否可行/如何为我们的文件类型创建自定义扩展文件属性,将product-code 表达到 Windows shell,以便可以在 Windows 资源管理器(以及文件对话框)中看到它?
  2. 如果可行,那么如何进行配置,以便默认情况下为包含我们文件类型的文件夹显示 product-code 列。

谁能指出我上面的一个好的起点?我们当然不必通过发布自定义扩展文件属性来实现这一点 - 但在没有任何方法来衡量走这条路的成本的情况下,这似乎是一种明智的方法。

如果您有解决问题的明智替代方法,我也会对这些感兴趣!


刚刚找到:http://www.codeproject.com/Articles/830/The-Complete-Idiot-s-Guide-to-Writing-Shell-Extens

废话!看来我来晚了,MS已经从他们的shell中删除了这个功能:http://xpwasmyidea.blogspot.com/2009/10/evil-conspiracy-behind-customizable.html

【问题讨论】:

  • 是的,Microsoft 在 Vista 中删除了此功能。您需要支持多少用户?有各种第三方文件管理器(包括我公司制造的一个,我不会命名,因为这有点明显)仍然支持 IColumnProvider 接口,因此根据您的需要,您可以指定使用第三方文件管理器作为您的用户的解决方案。
  • 这里是 Vista 方式:Windows Property System

标签: c++ winapi windows-shell


【解决方案1】:

到目前为止,开发 shell 扩展最简单的方法是使用为此目的而制作的库。

我可以推荐EZShellExtension,因为我过去曾使用它为我们公司的自定义文件格式添加列和缩略图/预览。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2020-09-28
    • 2021-06-18
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多