磁盘文件占用空间计算法

Author: 江西:吴春菊 Date: 1994-01-07

        一、DOS文件的存贮分析
        DOS在磁盘上存贮文件要完成三次工作:一是把文件名、文件长度、属性等物理特征登录在DOS的目录区;二是把文件内容占用磁盘位置登录在文件分配表FAT上;三是把文件内容写入相应的磁盘扇区中。文件分配表FAT记录了为每个文件分配的实际空间。磁盘文件存贮在格式化好的扇区中。但文件分配不是按扇区,也不是按实际长度,而是按簇分配的。一个簇一般包含1~16个扇区。不同的机型,不同的DOS版本,每个簇所包含的扇区不同(见附表)。如果一个文件只有5个字节长,那么它占用的磁盘空间至少是512字节,多则可达8K。如果一个文件超过一个簇,磁盘须再为它分配一个簇,直至文件结束为止。可见,如果一个文件不正好结束在簇的最一个扇区位置,则磁盘为其分配的空间大于文件的实际长度。
        二、文件占用磁盘空间的计算方法
        由分析可知,文件占用的磁盘空间是按其长度在磁盘上按簇分配的。也就是说该文件在磁盘上占用空间大小取决于文件长度及每簇所含扇区数。即:
        Ls=INT*S*C
        其中:Ls__文件占用磁盘空间
        L__文件长度
        S__磁盘每簇扇区数
        C__每个扇区的字节数,一般为512(0.5K)
        INT__取整
        对任意一个文件,长度L可通过DIR命令浏览,每簇扇区数S可用下面的方法判断:记下当前磁盘剩余空间,然后生成或拷贝一个短文件(长度少于512字节)。再用两次磁盘剩余空间之差除以512即是每簇扇区数。
        此方法计算简单,读者不妨一试。
        江西:吴春菊