这个文件在哪里存着?
-
磁盘:
- 如果你通过常规方式创建文件(例如右键新建、命令行创建、程序保存等),文件会立即写入磁盘。
- 即使文件内容为空,操作系统也会为其分配元数据(如文件名、创建时间等),并将这些信息写入磁盘。
是否占用磁盘空间?
-
占用空间,但极小:
- 属性(元数据)占用:即使文件内容为空,操作系统仍需记录文件名、创建时间、权限等元数据(metadata)。这些信息会占用少量磁盘空间(通常约 1-4 KB,具体取决于文件系统)。
- 文件系统的最小分配单元(簇):磁盘存储按“簇”(Cluster)划分,每个簇的大小通常是 4 KB(可自定义)。即使文件大小为 0 字节,系统仍会为其分配至少一个簇的空间。因此,空文件在资源管理器中可能显示为 “0 字节”,但实际占用 4 KB(通过右键属性查看“占用空间”)。
-
验证方法
- 查看文件属性:
- 右键文件 → 属性 → 观察“大小”和“占用空间”(Size vs Size on disk)。
- 大小:0 字节
- 占用空间:4.00 KB(4,096 字节)通常显示为 0 字节(对于空文件),但实际上文件系统会为其分配一个簇,如果往里面写入了一个1,通常会显示3字节,但实际上文件系统会为其分配一个簇
- 命令行查看:
- 使用
dir
命令查看文件大小: - dir filename.txt
- 结果中的“大小”列为 0,但实际占用空间由文件系统决定
-
查看磁盘的簇大小命令:fsutil fsinfo ntfsinfo C:(在输出结果中,找到 “每簇字节数”(Bytes Per Cluster)或者 “每群集字节数”。
- 使用
- 查看文件属性:
物理扇区和簇两者的关系
- 物理扇区 (磁盘上最小的可寻址单元,由磁盘硬件决定)是磁盘硬件的特性,而 簇 (表示文件系统分配磁盘空间的最小单位)是文件系统的特性。
- 如果 每物理扇区字节数 和 每群集字节数 相同(如 4096 字节),这意味着文件系统的簇大小与磁盘的物理扇区大小对齐。这种对齐可以提高磁盘的读写性能。
- 如果两者不同(例如物理扇区为 4096 字节,簇为 512 字节),可能会导致额外的 I/O 操作,从而影响性能。
总结
在windows上创建一个空文件,这个文件在磁盘存着,除了文件内容占用空间,文件属性也会,所以我们可以得出文件=内容+属性(元数据),即使文件内容为空,属性部分也会占用少量空间,并且文件系统会为其分配至少一个簇的空间(如 4 KB);优化建议:如果需大量创建空文件,建议合并或压缩,避免浪费磁盘空间