3

我们应用程序的“文档”是单个二进制文件。

我们的客户询问我们是否可以将类似 MS Office 的文档属性添加到我们的文档文件中,以便用户更轻松地管理它们。更易于管理是指 Windows 资源管理器能够在工具提示中显示常用文档属性。

我的研究似乎表明我们应该将 OLE 结构化存储作为我们数据文件的基础。我已经看到这种技术也被描述为 MS 结构化存储、OLE 2 复合文档格式和 Windows 文件元数据。

我对使用 OLE 结构化存储的担忧是,Office 2007 或 2010 似乎不再使用这种文件格式,并且 OLE 结构化存储需要注册 DSOFILE.DLL ActiveX 组件,我们的许多客户将无法使用,因为他们在用户没有安装软件的管理员权限的锁定工作站上运行我们的软件。(我们的应用软件是纯 XCOPY 部署)。

希望听到关于我们的选择的想法。

谢谢你,马尔科姆

4

2 回答 2

3

我很确定您的最佳答案是使用 OLE 复合文档。

微软可能已经停止使用它,但那是因为他们已经采用了 XML 文件格式。除非您愿意将当前的文件格式转换为 XML,否则我认为新的标签标准不会对您感兴趣。

您可以让您的应用程序保存两个文件,一个仅用于标记的 XML 文件和一个用于二进制数据的文件,但这只会让您的用户感到痛苦。OLE 复合文档格式的全部意义在于允许将多个“文件”绑定在一个文件中。

此外,如果现代 Windows 不支持内置的 OLE 复合文档,我会感到非常惊讶。我很确定早在十多年前的 Microsoft Word 6.0 中,文档就以这种 OLE 复合文档格式保存. 为什么 Windows XP 或更新版本需要额外的 .DLL 文件才能解析出标签?

使用 OLE 复合文档格式的最佳之处在于,用户标签将随文件一起出现,无论如何:如果用户将文件写入文件服务器,如果用户将文件放入电子邮件中,如果用户刻录文件到CD,无论如何。(我写的第一个答案,我删除了,很糟糕;即使它起作用了,它也会将用户标签放在文件之外,我越想它,我就越不高兴。)

因此,我建议您尝试创建一个 OLE 复合文档,然后在标准安装的 Windows XP 中的 Windows 资源管理器中查看该文件。看看您是否可以在不需要下载和安装 ActiveX .DLL 的情况下看到这些标签。我很确定它会起作用。(但我真的不再做 Windows 了,所以我不能方便地为你测试这个。)

编辑:好的,我刚刚做了一个测试。我在工作,我在这里有一台 Windows 电脑。我使用Word 2007 制作了一个文档,并将文档保存为Word 97 格式。我在 Windows 资源管理器中查看了文档属性;作者姓名在标签中可见。我在“评论”中添加了文本,然后在 Word 2007 中打开了该文件。然后我能够查看评论(单击左上角的“办公室”图标圆圈,选择“准备”,选择“属性”)。

So, my theory has some evidence to support it: I did not have to install any special software, my Windows Explorer just worked with the OLE compound document format Word file with the tags. (It could be that Microsoft Office installs some special .DLL to use the tags with Windows Explorer; I do have Microsoft Office 2007 installed on that computer. But your customers likely have Microsoft Office too, so even if that is the case, I still think this is the best solution.)

I suggest you Google search for "OLE compound document format" and see how to write this format. I found an example of how to read the tags here: http://support.microsoft.com/kb/186898

于 2010-01-03T21:50:10.680 回答
0

On Windows 2000 or higher, instead of using OLE compound document, you can also store the summery information in the NTFS file metadata so applications such as Windows Explorer or Windows Desktop Search can use the attributes in property pages, tooltips, columns and searching.

于 2010-01-04T23:44:21.567 回答