扩展名和文件格式的区别

这里说的扩展名呢,大家应该都不陌生,就是文件名最后跟着的以"."开始的小尾巴,例如电脑里常见的“.exe”、“.deb”、“.img”和手机里常见的“.apk”等等。什么,你告诉我你的电脑没有扩展名?!其实,这是在Windows里给默认隐藏了。许多病毒就利用这个来伪装自己。而且我们还经常有改扩展名的需要,所以我们必须让它现出原形:

   1:打开"控制面板"

1.png

2:切换"查看方式"为"大图标"或者"小图标"

2.png

3:选择"文件夹选项",在弹出的对话框中选择"查看",找到"隐藏已知文件类型的扩展名",然后去掉对勾,然后确定即可。

3.png

这样它就现出原形了,以后我们在更改文件名时就可以同时更改扩展名了。如果你的电脑发现了多文件名,例如“.txt.exe”,那么你该好好杀杀毒了。

那么扩展名究竟有什么用呢?扩展名其实只是操作系统用来快速识别文件类型的。然后系统会根据文件类型,在配置里找到注册了这个文件类型的默认软件来执行这个文件。以win为例,看似双击就可以执行,其实真实过程是这样滴:你双击文件就是告诉操作系统,我要打开这个文件啦,然后操作系统会告诉你:“我明白,老大!”(查询文件类型),但是它不会啊,他就会看看它的那些小弟们(应用程序)谁会打开这个类型的东西(),然后它的小弟们说我会(查询系统的配置),然后在里面挑一个关系最好的一个小弟(默认软件)去打开这个文件。这些我们看不到的东西说起来复杂,其实是很快的,而表现给我们的就是我们在win里面双击,然后软件就自己打开了。如果某种格式你没有默认的软件,那么系统会提示你选择哪个软件来打开,一般情况下在安装软件时就配置好了。如果你想更改默认的打开软件,可以通过选择打开方式来重新选择软件来打开,在Windows中通常是右击然后选择。

那么扩展名是不是就是文件的类型呢?NO!NO!NO!(重要的问题要说三遍)日常应用中扩展名大致可以看成是一种文件类型,其本意是方便系统来识别文件,大致确定文件类型的。但是实际上确定一个文件的文件类型是通过文件格式而不是通过扩展名的。举例来说,txt是一种最常见的文件类型,你把txt文件的扩展名改成jpg,难道就成图片么,图片查看器认么?你把它改成MP3,难道就成音乐了么,能听么?你把它改成avi就成视频了么,能看么?答案当然是不能的。

前面说文件格式决定文件类型,那文件格式到底是什么样的呢?它和扩展名有什么关系呢?

文件格式存在于文件的数据中的,而不是在文件扩展名中。大多数文件在文件的头信息(不是C语言中的头文件!!!)中都对包含一个特征码,用来说明文件类型,不同的文件在数据内部的特征码都不一样,这个就是真正确定文件的类型的。比如JPG文件,开头的四个字节“ 0xFF 0xD8 0xFF 0xE0”就是JPG的文件文件类型标志,而png文件,开头的文件文件类型标志就是“ 0x89 0x50 0x4E 0x47”,这几个字节分别表示了jpg和png文件的文件格式。无论你怎么更改这个文件的扩展名,它的数据格式是不会变的,也就是说它真正的文件格式是不会变的。所以要真实的确定文件的格式,就需要对文件头进行分析,确保真实。

4.png5.png

几乎所有的文件都会一个特征码,用来说明文件类型。如果没有那么你就无法确定其真实的类型。那么有没有没有这个特征码的呢?有!例如前面提到的txt,除了你写入的字符,它没有任何多余的东西。还有就是你自己定义的文件。如果一个文件既不是文本文件,也不是你定义的,那么,它就是别人自定义的文件,你不知道每一个字节代表的意义的话,是无法正确解析的。这样的文件一般只是作内部文件使用,因为它不是通用的文件格式,没有标准规范。

既然文件扩展名并不会影响文件的真实类型,那么为什么还要存在呢?

这是因为现在的计算机存储设备速度太慢,为了客户体验,使用扩展名的机制可以让系统可以快速而比较准的去判断一个文件的类型,虽然它并不都能真实的反映一个文件的具体格式,但是却让系统识别文件变得更迅速,如果系统要识别每一个文件都要先预读一下的话,那么系统会变得非常非常慢。而且扩展名的存在方便了人们来判断文件类型,如果一大堆没有扩展名的文件放到你面前,谁都会头大的。

知道扩展名和文件格式详细信息,区别也就不言而喻了。虽然通常情况下可以通用,但是它们真心是不一样的,尤其是对程序员来说,如果不加检查,随意读写,那么程序会崩溃的!

版权声明:
作者:崔圣杰
链接:https://www.cuishengjie.com/78.html
来源:论剑阁-崔圣杰博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
扩展名和文件格式的区别
这里说的扩展名呢,大家应该都不陌生,就是文件名最后跟着的以"."开始的小尾巴,例如电脑里常见的“.exe”、“.deb”、“.img”和手机里常见的“.apk”等等。什么,你告诉我你的电脑没有扩展名?!其实,这是在Windows里给默认隐藏了。许多病毒就利用这个来伪装自己。而且我们还经常有改扩展名的需要,所以我们必须让它现出原形
<<上一篇
下一篇>>