cfans1993
V2EX  ›  问与答

office 2007 的 pptx、xlsx、docx 文件不通过扩展名的方式,如何判断属于哪个类型

  •  
  •   cfans1993 · Jul 20, 2015 · 2873 views
    This topic created in 3979 days ago, the information mentioned may be changed or developed.

    主要问题:

    文档太多,而且都没带后缀名,需要通过文档类型进行归类,不想通过后缀名逐一试错判定类型。

    想到的方法

    通过文件头,可是文件的前面20来个字节都是一样一样的。有没有遇到过这种情况的朋友分享一下经验。

    Supplement 1  ·  Jul 21, 2015
    查了下官方说明:
    https://support.office.com/zh-cn/article/Office-Open-XML-I%EF%BC%9A%E4%BA%86%E8%A7%A3-Office-Open-XML-%E6%A0%BC%E5%BC%8F-99e39a4d-0a20-4543-934d-55896e0b93ef?ui=zh-CN&rs=zh-CN&ad=CN

    得出一种参考方案:
    如果一堆文件都是office 2007系列的,只要用7z列出文件里的清单,然后通过匹配标识文件来判断
    >pptx:含有presentation.xml文件
    >xlsx: 含有workbook.xml文件
    >docx: 含有document.xml文件
    4 replies    2015-07-21 05:40:21 +08:00
    ho121
        1
    ho121  
       Jul 20, 2015 via Android
    带x的是zip包
    luengzeegin
        2
    luengzeegin  
       Jul 20, 2015 via Android
    排列方式里面不是有个按类型吗...
    IMRES
        3
    IMRES  
       Jul 20, 2015   ❤️ 1
    以zip格式打开,判断[Content_Types].xml的“ContentType”
    yyfearth
        4
    yyfearth  
       Jul 21, 2015   ❤️ 1
    “前面20来个字节” 对于带x的文件无法区别的
    都是 PK 开头的标准zip包
    你还要解压里面的xml来判断
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   922 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 20:35 · PVG 04:35 · LAX 13:35 · JFK 16:35
    ♥ Do have faith in what you're doing.