以编程方式告诉c++中的文件类型

programmatically telling types of files in c++

本文关键字:文件 类型 c++ 编程 方式告      更新时间:2023-10-16

有什么方法可以程序化地查看文件并告诉它是什么类型的文件,例如mp3, txt, binary, photoshop等?我不认为STL中会有任何东西(除了试图打开一个文本文件并读取它)。

如何判断你真正在处理什么类型的文件?我的意思是我可以在一个不是mp3文件的文件上放一个。mp3扩展名。

每种文件类型都有某种"签名",这是一种查看文件并识别其结构的方法。在许多情况下,文件以特定的字节序列开始。例如,PDF文件以标题开始,看起来像这样:

# xxd temp.pdf | head -n 1
0000000: 2550 4446 2d31 2e33 0a25 c4e5 f2e5 eba7  %PDF-1.3.%......

如果您想要确定的话,除了从文件的头文件中读取幻数之外,没有别的办法了。这些是开头的字节。例如,PNG文件以PNG开头。

http://en.wikipedia.org/wiki/Magic_number_(编程)