(我使用的是Windows XP,但我猜它在所有最新版本的Windows中都是类似的。)
例如,当您创建一个新的空文本文档时,您会在其属性中发现它的大小为0字节。零字节表示没有信息。没有数据。
但是,该文件仍具有一些名称,它仍可以带有上次访问,修改和创建的日期。无论是否为隐藏文件,是否为只读,它都承载信息。
那么所有元数据都存储在哪里?
(我使用的是Windows XP,但我猜它在所有最新版本的Windows中都是类似的。)
例如,当您创建一个新的空文本文档时,您会在其属性中发现它的大小为0字节。零字节表示没有信息。没有数据。
但是,该文件仍具有一些名称,它仍可以带有上次访问,修改和创建的日期。无论是否为隐藏文件,是否为只读,它都承载信息。
那么所有元数据都存储在哪里?
Answers:
您已经学会了硬盘包含文件,但这不是全部。实际上,硬盘驱动器包含一个非常大的数字,用很多单个位表示。但是这种解释对您和您的计算机都没有任何意义,因为处理单个大数并不常见(我在说的是“真正大数”)。取而代之的是,计算机将其拆分为较小的“字”(8位,16位,32位或其他),并像这样使用。尽管如此,那只是一堆单词(假设8位单词,即字节)。
现在,该驱动器已分区。我已经解释了为什么在这个答案中分区是一个好主意:
一般而言,无需分区即可使用驱动器。大多数Pendrive都是这样工作的。但是使用分区有很多优点,仅举其中一些:
- 您可以使两个操作系统位于同一硬盘驱动器上,并且不会互相干扰。每个分区都将其分区视为逻辑驱动器,除非您告知,否则不会与其他分区混淆。
- 您可以在逻辑上分离数据。如果一个分区由于某种原因损坏,其他分区很可能会保持完整。
- 使用分区比使用多个较小的硬盘驱动器更好,因为系统更安静,能耗更低,并且可以调整大小,删除或移动它们等。
- 您可以将硬盘驱动器的某些部分用于某些特殊目的。
现在,每个分区都有自己的文件系统。Windows的现代版本使用NTFS,但外部媒体或旧分区支持FAT,FAT32和exFAT。日常使用的Linux安装通常使用ext文件系统,而ext4是最新的文件系统。
文件系统定义了文件在磁盘上的物理放置方式。您可以这样想:如果您有一本10000页的书,没有任何章节,页码或换行符,那么将很难使用。当然,页码和章节标题会占用页面上的一些空间,但是它们使使用本书变得更加容易和快捷。如果要跳到第42章,只需在目录中查找即可。然后翻阅本书,直到找到所需的章节。您的文件是章节,而文件系统是书。文件系统元数据(例如文件边界,文件名等)也占用空间,但是它的空间相对较小,并且使工作更快。
如果您的“章节”为空,那么它仍然可以具有标题或页码,对吗?空文件包含零字节的数据。元数据会占用空间,但它不是文件的一部分,而是文件系统的一部分。否则,您会在文本文件中看到文件名吗?
顺便说一下,这就是为什么早期版本的DOS只接受8.3名称的原因-为文件名保留的空间非常有限。NTFS允许使用255个字符长的文件名[1]。
在您的评论中再说一句话:
我曾经有一种病毒,以某种方式破坏了我PC中的几个文件,因此它们看起来大小约为100GB。他们每个人。在我的40GB硬盘上。所以一定有某种魔术... :-D
借助一个名为“ 稀疏文件”的功能,完全有可能拥有比硬盘更大的有效文件。Hennes在对这个问题的评论中对这些有很好的解释:
想象一下一个能够容纳100页的活页夹。如果您将该活页夹用作常规文件,则可以插入100页。您可以读取全部100。您可以写入全部100。现在想象一个稀疏的资料夹。您插入写的第一页“页面1:内容A”。然后插入第二个页面,写上“页面9999:内容b:”。每当您尝试阅读页面时,都会查看该页面是否存在。如果不是,您的答案将是空白页。如果确实存在,则返回页面内容。每当您写到活页夹中尚不存在的页面时,就添加一张新纸。
今天刚刚了解了Windows备用数据流(ADS)。这是附加到文件的隐藏资源分叉。自Windows NT 3.1以来,它一直是NTFS的一部分。
例如,如果您有一个空白文本文件,但在文件的属性标记中填写了一些摘要信息,则会创建一个隐藏的ADS文件并将其附加到文本文件中。报告原始文件的大小时,大多数Windows版本都不包括ADS文件的大小。
您可以从命令提示符下创建和查看ADS文件。
echo "ABCDE" > test.txt:hidden.txt
将创建一个test.txt文件,其中包含一个名为hidden.txt的ADS文件
您可以使用以下命令来编辑文件:
notepad test.txt:hidden.txt
这是一篇易于阅读的文章,更加详细。
我进行了搜索,并遇到了关于堆栈溢出的类似问题。
基本上说文件是创建的,占用几个字节或一个硬盘驱动器群集等。它取决于硬盘驱动器和文件系统的粒度等。
他们在这里讨论:https : //stackoverflow.com/questions/4954991/are-0-bytes-files-really-0-bytes
以及进一步研究的其他链接。
在NTFS卷上,此信息存储在图元文件中。特别是,文件名和时间戳存储在名为$ MFT的图元文件中。普通Windows方法(例如资源管理器或命令提示符)无法访问图元文件。
欲了解更多信息: