我需要能够根据文件的内容而不是文件的扩展名来识别给定的文件是ODF文件。
ODF文件实际上是zip容器中XML文件的集合,这意味着我不能使用该文件的神奇编号,因为它只是指示它是一个zip文件。
所以,我真正想问的是,中是否有要求存在于ODF容器中的文件?如果存在,则在压缩容器中显示该文件的存在表明它很可能是一个ODF文件,而该文件的缺失表明它肯定是而不是-- ODF文件。
发布于 2009-11-30 04:55:10
为什么不检查一下ODF技术规范呢?列出的mimetype文件可能是检查的理想方法(只需查找mimetype中的vnd.oasis.opendocument字符串)。
发布于 2010-12-15 23:21:56
据我所知,存档的根目录中总是会有.xml文件,并且这个/这些xml文件始终包含字符串<office:document。
我看到的所有这些内容似乎都在根中包含了一个名为"content.xml“的文件,其中确实包含了这个字符串。
编写ODF文档的应用程序不多,在过去,基本上只有一个。因此,安装一些古老版本的OpenOffice,保存几个文件,并检查此规则是否适用于当前的ODF文件,应该不会太困难。
我会在一批已知的ODF文件上进行这样的测试,以检查它是否可靠:
$ unzip -c $FILE content.xml | grep -q '<office:document' && echo yes || echo NO发布于 2015-05-15 10:56:33
读取生成ID -如果缺少,文档就不是ODF。
oDoc = ThisComponent
If oDoc.BuildID = "" Then
bIsNotODF = TRUE
Endifhttps://stackoverflow.com/questions/1817908
复制相似问题