我的一个朋友在她的电脑(Mac)崩溃时保存了一个文件。她以为文件已经保存,所以没有太担心,但现在她看到文件大小为 0 字节,文件是空的,原因很明显。
这件事发生在一个多星期前,到目前为止她执行了许多大型文件操作,所以我告诉她她很可能无法恢复它,事实上,在我告诉她之前,她已经应对了这个问题。
尽管如此,这让我想知道是否有任何管理工具(Windows,Mac或UNIX)可以修改文件大小属性,以便文件系统认为文件更大,或者是否有可能从文件指针开始从磁盘读取一定数量的字节,而忽略其根据文件系统表的大小?
因为该文件之前已经保存过,而且是纯文本文件(准确地说是 XML),所以我推测,通过伪造更大的文件大小,来自磁盘的相邻字节将被解释为属于损坏的文件。当您在简单的文本编辑器中打开该文件时,至少文件的一部分可以再次读取,除非“空闲”簇已被任何其他文件占用,或者该文件就在那里分区。(注:如果可能的话,我们会将文件复制到 USB 驱动器,然后再次减小大小以解决该磁盘空间可能重复分配的问题。)
如上所述,她已经应对重新做这项工作,但我想知道您是否可以实际操纵文件大小属性或读取固定数量的字节,而不管“有效数据长度”信息。
我尝试用 Google 搜索,但 Google 似乎无法理解我想要做什么。我找到的唯一工具是fsutil file setvaliddata <file> <length>
Windows 版的,但似乎不起作用。我尝试在提升的 shell 中修改文本文件的大小,但显然任何length
200 以外的值都会导致“错误:参数错误”,而 200 是我的原始文件已有的字节大小。
我还认为我更有机会使用 OSX,因为它与 UNIX 相似,但实际上我还没有找到适用于任何其他操作系统的东西。