开发者

Are 0 bytes files really 0 bytes?

I have a simple question.

When we create a file, let's say "abc.txt" and le开发者_如何学Pythonave it blank.

The OS will show that the file is 0 bytes size and takes 0 bytes on disk.

If we save 100 of these 0 bytes file into a folder, the OS will also say that the folder's total size is 0 bytes.

This may sound logical because there is nothing in the file. But should not these files take at least a few bytes in the storage device?

After all, we save it somewhere and named it something. Shouldn't the file's name and possibly some other headers at least takes up some space?


No, they still occupy a few bytes on the file system. Otherwise I would implement a magic filesystem that stored everything encoded in the filenames on empty files.


It actually boils down to a matter of definition. Either the "size of a file" refers to the size of the content of the file, or it refers to the "difference" it makes in terms of free bytes on the underlying file system (that is, size of content (rounded up to the closest block- or cluster-size) + bytes used for it's inode).


These details are stored into what is known as File Allocation Table (talking in Windows FAT context) traditionally. They are created when we format the hard drive. Some predefined space is allocated for it. I don't think the size of it changes.

For example, you format a 100 GB hard drive, only 90+ GB is available for you to use. Other space is used by the file system to manage/remember each file/folder that is saved on the hard drive and where it is saved.


The answer to this question is file-system dependent.

For example, on NTFS an empty file takes up a cluster, and a cluster has a size that depends on your hard disk size.

Here you can read some common cluster size for Windows' file systems.


The fact that they are present on disk means that a record has been created for them, which of course requires some amount of memory. The 0 bytes simply corresponds to the logical size of the file rounded to the granularity displayed in the UI, but even then it likely contains a file header which will depend on the file format.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜