许多来源报告 DVD+R 可用/用户可写空间的值为:4700372992 字节
我写过binpacker 程序使用该值,但所选文件总是超出 DVD+R 的容量(而 DVD-R 的容量则没问题)。
我发现正确的值应该接近 4692377600 字节
可用空间不匹配的原因是什么?正确的值应该是多少?
答案1
结论
这不完全是不可能的回答这个问题,但实际上很难回答,因为它会根据您要写入光盘的数据而变化。基本上,您需要执行 CD/DVD 刻录软件所做的操作,以确定在刻录之前是否超出光盘的容量。[我敢肯定,有些(如果不是大多数)此类程序都无法做到这一点完美。
大致而言,您已经做的事情,即将自己限制在较小的能力范围内,可能通常是唯一可行的解决方案。
该程序隔离器实际上非常巧妙。您可以非常轻松地看到文件和目录在磁盘映像中的存储方式,并且您可能可以逆向分析特定文件系统如何使用它为不同类型的文件分配空间。我要亲自尝试一下。
一些细节
和您一样,我发现您不能简单地比较文件的总大小(以字节为单位)和磁盘的总“总容量”(以字节为单位)。
首先,文件系统(无论是硬盘还是 CD 和 DVD 等光盘)都需要一定的空间来存储数据关于文件,例如存储它们的目录、文件的名称、最后修改时间等。
每个文件系统(几乎肯定)对于不同的文件和目录集都需要不同大小的空间;它们在文件名的最大长度、文件名是否可以由 Unicode 字符组成等方面也会有不同的限制。
不同的文件系统还支持或需要不同的扇区/块大小,这大致是可以分配给文件的最小空间量(几乎总是以字节表示),即 512 字节扇区大小意味着每个文件都分配有至少512 字节(仅用于文件数据)。但是,对于可用于 CD 和 DVD(以及蓝光光盘)的 UDF 文件系统:
小文件(和目录)可以存储在文件条目块本身中,类似于 NTFS 中的嵌入文件。
也就是说,小文件(和目录)可以存储在“文件系统元数据”本身中。[来源是下面的资源 [4]。]
一些资源
- 了解 DVD - 光盘大小、配置和容量
- 通用磁盘格式 - 维基百科,自由的百科全书
- 通用磁盘格式® 规范,修订版 2.50
- 文光对通用磁盘格式(UDF)的介绍
- CDBurnerXP:创建数据光盘
- 磁盘扇区 - 维基百科,自由的百科全书
- 光盘创作 - 维基百科,自由的百科全书
来自[5]:
即使您不添加任何文件,使用的磁盘空间也会超过 1MB。这是因为每个数据映像都有固有的系统开销,包括分配表、卷数据、系统空间和路径表(仅举几例)。此外,需要为导入和导出过程保留一些空间,自 CDBurnerXP 4.5 版起大约为 13 MB。
根据[7],我认为“导入”和“导出”不一定适用于数据光盘。