file - 文件的实际大小是多少?
问题描述
文本文件的大小怎么可能等于里面的字符数?例如在 file.txt 你有字符串“abc”,它的大小是 3 个字节。一切都很好,但是文件图标、文件名和文件信息呢?这些数据存储在哪里?
我在 Windows 上检查过,但在 Unix 系统上情况可能是一样的。
解决方案
磁盘以块为单位分配空间。历史上的块为 512 字节,但多年来一直在增加,因此 4K 很常见。您的文件大小将始终是块大小的倍数。
大多数文件系统(Windoze 也这样做)在集群中分配磁盘空间。一个簇是许多相邻的块。然后,您的文件大小将始终是块大小乘以集群因子的倍数。这通常是操作系统计算的文件大小。
这一切都取决于磁盘格式和操作系统:
一切都很好,但是文件图标、文件名和文件信息呢?这些数据存储在哪里?
文件信息(日期、所有者等)通常位于某种主文件表中。有时,此表将具有可以存储信息的扩展名。安全信息通常存储在此类溢出中。
合理设计的文件系统将在标题中存储“A”文件名。文件名也存储在目录中,如果一个文件链接到多个目录,它可以有多个名称。头文件名用于在损坏的情况下恢复文件。
图标的位置完全是系统特定的,可以通过多种方式完成。对于可执行文件,它们通常存储在文件本身中。它们也可以是同一目录中的隐藏文件。
推荐阅读
- c++ - VisualStudios 抛出异常,而代码块没有 [C++]
- html - 链接闪烁如果我把光标放在那个链接上
- multithreading - 什么会导致 Mac OS 上的线程被限制为 25%?
- c++ - 将父类的子类的数据复制到具有相同父类的另一个类
- ios - 应用程序在后台 AVAudioSession 中时如何播放自定义声音?
- r - 具有多个条件 if、else 或 ifelse 的函数
- javascript - 使用 .map() 错误地创建排序数组
- python - 当我通过 AJAX 提交表单时,为什么我的代码会重定向页面?
- html - 图像边框和图像本身溢出
- angular-bootstrap-toggle - 如何在 Angular 9 应用程序上设置 angular-bootstrap-toggle?