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

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

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

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

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

谢谢 马尔科姆

有帮助吗?

解决方案

我敢肯定你最好的答案是使用OLE复合文档。

微软可能会利用该停止了,但那是因为他们已经走了一个XML文件格式。除非你愿意从当前文件格式XML转换,我不认为,标签的新标准将是对你有意思。

您可能会使得你的应用程序保存两个文件中,XML只是一个标签和二进制数据之一,但只是意味着疼痛为您的用户。在OLE复合文档格式的整点是允许多个“文件”在一个文件中结合在一起。

另外,我会感到非常惊讶,如果现代的Windows没有为内建OLE复合文档支持,我敢肯定,早在微软的Word 6.0,在十多年前,文件被保存在此OLE。复合文档格式。为什么Windows XP或更新需要一个额外的.DLL文件能够解析标签了呢?

有关使用OLE复合文档格式的最好的事情是,用户标签将与文件去,不管是什么:如果用户将文件写入到文件服务器,如果用户滴在电子邮件中的文件时,如果用户灼伤文件到CD,等等。 (第一个答案我写的,我删除了,不好;即使它的工作会已经把用户的标签文件外,和我越去想它,就越高兴我在这个想法。)

所以,我建议你尝试创建一个OLE复合文档,然后只是看文件在Windows资源管理器在标准安装Windows XP的。看看你能不能看到标签,而无需下载和安装一个ActiveX .DLL。我敢肯定它会工作。 (但我不真正做的Windows多了,所以我不能方便地测试这个给你。)

编辑:好的,我只是做了测试。我在工作,我在这里有一个Windows计算机。我用Word 2007中制作的文档,我保存文档为Word 97格式。我看着在Windows资源管理器的文档属性;作者的名字是在标签可见。我添加文本“意见”,然后打开Word 2007中的文件,当时我能够查看评论(点击左上角的“办公室”图标中的圆,选择“准备”,选择“属性”)。

所以,我的理论有一些证据来支持它:我没有安装任何特殊的软件,我的Windows资源管理器只与标签的OLE复合文档格式的Word文件的工作。 (这可能是由Microsoft Office安装一些特殊的.DLL使用与Windows资源管理器的标签;我也有Microsoft Office 2007安装在计算机上,但你的客户可能有Microsoft Office也一样,所以即使是这样的话,我还是。认为这是最好的解决办法。)

我建议你谷歌搜索“OLE复合文档格式”,看看该怎么写格式。我发现这里怎么读取标签的例子: http://support.microsoft.com/kb/ 186898

其他提示

在 Windows 2000 或更高版本上,您还可以不使用 OLE 复合文档 将摘要信息存储在 NTFS 文件元数据中 因此,Windows 资源管理器或 Windows 桌面搜索等应用程序可以使用属性页、工具提示、列和搜索中的属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top