计算机 文件系统

随意排列文件数据 完全么有问题, 但是按顺序排列会更好, 偶尔也可以自己发明文件格式
但是 最好用现成的标准

文本

文本文件只是一长串二进制数:

计算机 文件系统
解码数据的关键是 ASCII
将其解析为 十进制,然后与 ASCII 对照, 翻译成字母:
计算机 文件系统

音频

更复杂的 波形(WAVE)文件, WAV文件, 存储音频
在解码前需要知道 码率(bit rate), 以及单声道还是立体声
关于数据的数据, 叫做 元数据 , 在文件开头, 有些部分是一样的, 有些是需要根据数据变化的.

计算机 文件系统
计算机 文件系统
计算机 文件系统
数字代表每次捕获多次的声音幅度

计算机 文件系统
计算机 文件系统
计算机 文件系统
计算机 文件系统
播放文件是, 音箱会产生相同的波形.

位图(Bitmap)

位图的后缀是 .bmp
图片有很多像素组成, 每个像素由 红绿蓝三色组成, 叫 加色三原色 , 相互混合创建其他颜色
计算机 文件系统
计算机 文件系统
计算机 文件系统
8(bit)位 和 1字节(Byte) 是一回事

第一个像素的颜色是 rgb = (255,255,255), 混在一起是 白
计算机 文件系统
计算机 文件系统
计算机 文件系统
计算机 文件系统
文件底层是一样的: 一长串二进制
为了知道文件是什么, 文件格式至关重要。

文件存储

计算机 文件系统
计算机 文件系统
计算机 文件系统
随着存储容量的不断增大, 存储多个文件变得非常必要。
最简单的方法就是将文件连续存储。
但是怎么知道哪里是文件的头尾呢?
需要一个特殊的文件, 记录其他文件的位置, 这里泛称"目录文件", 经常存在开头

计算机 文件系统
计算机 文件系统
计算机 文件系统
扩展名 帮助 知道文件类型
目录文件 还存储文件的元数据, 比如 创建时间
计算机 文件系统
计算机 文件系统
对文件进行增删改, 需要更新 目录文件
像上面这样,所有的文件都在同一个层次, 是一个 “平面文件系统”,
问题是, 给前面的文件中间插入数据, 会覆盖到后面的数据的一部分.
解决方案: 块存储
01 把空间划分为一个个小块
计算机 文件系统
而目录文件 记录 这些文件在哪些块里面
02 拆分文件, 存在多个块里面
计算机 文件系统
删除数据 只是在目录文件中删除了 文件记录, 文件的数据并没有被擦除.

计算机 文件系统
所以 才会有 数据恢复 !

计算机 文件系统
同一个文件在多个块里面, 就会形成碎片, 这个是不可避免的, 它是由增删改导致的.
在不同的快里面 读取文件会比较慢, 所有需要 进行碎片整理.
碎片整理: 计算机把数据来回移动, 排列成正确的顺序, 是文件的存储块尽可能的连续.
随着文件量的增长, 所有文件都放在同一个目录里面变得不再适用, 需要将同类型的文件放在 同一个文件夹下面, 然后文件夹套文件夹, 这个叫 分层文件系统

计算机 文件系统
这个目录文件夹在文件的最顶层,所有叫 根目录
计算机 文件系统
文件移动: 修改文件目录即可, 而不是真正的移动文件数据