什么可能导致文件被替换为空字节、大小和时间戳未修改?

SWi*_*ilk 6 windows hard-drive filesystems

我的硬盘驱动器上的一堆文件格式不正确。格式错误的文件:

  • 将他们的内容替换为 NULL 字节
  • 与畸形发生前的大小完全相同,
  • 修改时间没有改变

我至少有 40 个格式错误的文件,正在寻找其他受害者。大多数文件是 Netbeans php 项目的一部分。有些是文本文件,有些是图像。最近没有修改它们。HDD Smart 没有显示任何令人担忧的内容,AV 软件也没有检测到任何病毒。我的操作系统是 Windows 7。

任何想法可能导致这种奇怪的行为?

[编辑] 我扫描了磁盘以找到其他格式错误的文件,奇怪的是,除了我之前找到的 40 个文件之外,没有其他“NULL”文件。所有文件都属于同一个 Netbeans 项目。我以前从未见过类似的东西。

Bla*_*ift 5

SyncTrayzor github 上的讨论表明它可能与 Windows 更新有关。

我已经发生过两次config.xmlWindows 更新后来自 SyncTrayzor 的数据被空字节填充的情况,并且至少有一个其他用户也遇到了同样的问题。大约在同一时刻,一些 Firefox 缓存文件也被填空。

搜索仅包含空字节的文件似乎表明它们主要是“配置”文件或缓存文件之类的东西。我的假设是,当计算机作为 Windows 更新的一部分被迫重新启动时,这些文件保持打开状态,并且未正确同步到驱动器。

编辑:检查重启历史记录更新历史记录表明

  • 几乎所有 100% 空字节文件都是在重新启动的同一天创建的。只有少数具体的不是。
  • 其中大多数是在“Windows 10 版本 1803 累积更新”或之后的第二天创建的。也许重新启动有时会推迟到安装后的第二天?

因此,很明显,空字节的创建是由重新启动触发的。大多数重新启动可能是因为更新,因此不清楚它是否会在任何重新启动时发生,或者更新重新启动在这方面是否特殊。

我还没有弄清楚如何以机器可读的形式获取所有信息,因此到目前为止,这是一种低效的手动调查。大多数屏幕我什至无法复制粘贴,因此效率非常低。如果有人知道如何将此信息放入文件中,我将不胜感激:

  • 所有字节均为空的文件的文件名和创建/修改日期。
  • Windows 关闭/启动日期。编辑:get-eventlog system | Where source -eq EventLog | Where InstanceID -like 214748965*
  • Windows 更新日期(特别是需要重新启动的日期)。

编辑:重启假设由/sf/answers/3692585151/证实。不过,这个答案仅指意外重启。

编辑:N++团队证实的重启假设:https://notepad-plus-plus.org/community/topic/13302/fix-corrupted-txt-file-null

使用 Recuva 的可能恢复机制:恢复因断电而损坏的文件