01文件后缀到底是什么?
我们经常看到这样的文件名:
photo.jpg、note.txt、music.mp3、main.cpp。
文件名最后一个点号后面的部分, 通常叫作文件扩展名(Filename Extension), 日常也常说“文件后缀”。
02后缀和文件格式是什么关系?
后缀和文件格式关系很密切, 但它们不是同一件事。
文件后缀
文件名里的提示
.png
文件格式
数据真正的组织规则
PNG 格式结构
例如 picture.png 这个名字告诉我们:
“它应该是一个 PNG 图片文件。”
但软件真正读取文件时, 还要按照 PNG 格式规定的结构去解析里面的 Byte。
03为什么要有这么多不同后缀?
因为电脑里的数据种类很多, 不同格式解决的问题也不同。
.jpg / .png
图片文件
组织像素、颜色和压缩信息.txt / .md
文本文件
主要保存文字内容.mp3 / .flac
音频文件
保存编码后的声音数据.cpp / .php
源代码文件
保存程序源代码文本04改后缀能改变文件格式吗?
一般不能。
假设一个真正的 JPEG 文件叫:
内部还是 JPEG 数据
内部仍然还是 JPEG 数据
只是文件名变了, 里面的数据并没有被重新编码。
真正的格式转换
读取原格式 → 解码内容 → 按新格式重新编码 → 保存新文件
05电脑怎样知道用什么软件打开?
操作系统通常会建立文件关联(File Association)。
例如:
.jpg 可以关联图片查看器,
.mp3 可以关联音乐播放器,
.cpp 可以关联代码编辑器。
操作系统查找关联
图片查看器
所以双击文件时, 系统往往会根据后缀和已有设置,选择一个合适的程序来打开。
06除了后缀,电脑还能看哪里?
有些文件格式会在文件开头放一些有特征的 Byte, 用来帮助识别格式。
这种特征常被称为文件签名(File Signature), 也常俗称“魔数(Magic Number)”。
PNG
89 50 4E 47 ...
文件开头有固定特征
JPEG
FF D8 FF ...
常见 JPEG 文件的开头
25 50 44 46
对应文本“%PDF”
所以某些程序即使看到错误后缀, 也可能通过检查文件内容判断真实格式。
07没有后缀的文件还能存在吗?
可以。 文件系统通常并不要求每个文件名都必须带扩展名。
没有点号和扩展名
也可以是合法文件名
在一些操作系统和开发环境中, 没有扩展名的文件非常常见。
程序仍然可以根据文件内容、约定、MIME 类型或用户指定的方式去处理它。
你已经知道了什么
- 文件后缀通常是文件名最后一个点号后面的部分,例如 .jpg、.txt、.cpp。
- 后缀主要提示文件可能采用什么格式,但它和文件内部真实格式不是同一件事。
- 不同格式解决不同的数据组织问题,所以会出现很多不同扩展名。
- 把 photo.jpg 改成 photo.png 并不会把 JPEG 真正转换成 PNG。
- 真正的格式转换需要程序读取原格式,再按新格式重新编码并保存。
- 操作系统可以根据扩展名建立文件关联,决定双击时默认使用哪个程序打开。
- 有些格式可以通过文件签名或内部结构识别,而不只依赖后缀。
- 文件可以没有扩展名,所以“所有文件都有后缀”是不准确的。
下一个问题: 既然电脑里有这么多文件, 我们总不能全部堆在一起。 那文件夹到底是怎样帮助我们整理文件的? 下一篇:文件夹是怎样整理文件的?