应用程序如何检测文件扩展名?
我知道每个文件都有包含与该文件相关的所有信息的头文件。我的问题是应用程序将如何使用该头来检测该文件?
文件系统中的每个文件都与它关联一些元数据,例如,如果我将音频文件的扩展名从。mp3更改为。txt,然后我用VLC打开该文件,但VLC仍然能够播放该文件。我发现每个文件都有头节,其中包含与该文件相关的所有信息。我想知道如何访问头文件?
给你更多的细节:
文件扩展名基本上是一种指示数据格式的方法(例如,TIFF图像文件有格式规范)。
这样应用程序就可以检查它处理的文件格式是否正确。
一些应用程序不检查(或接受错误的)文件格式,只是尝试使用它们作为它需要的格式。因此,对于您的.mp3
文件,该文件中的数据是而不是,当您简单地将扩展名更改为.txt
时。
当VLC逐字节读取.txt
并将其解释为.mp3
时,它可以从该文件中提取正确的音乐数据。
现在一些文件包含一个头文件,用于额外验证文件中数据的格式。例如,unicode文本文件(应该)包含一个BOM,以指示如何处理文件中的数据。这样应用程序就可以检查标题标签是否与预期的标题匹配,这样它就可以确定你的'.txt '文件实际上包含'mp3'格式的数据。
现在有相当多的应用程序可以读取这些头标签,但它们通常是特定于每种格式的。以这个TIFF标签查看器为例(我过去用它来检查TIFF文件中的标题标签)。
或者你可以用某种十六进制查看器打开你的文件然后查看格式规范每个字节的含义,或者你搜索谷歌头查看器找到你想要看到的格式