保存文本文件时,请更改内容,再次保存,然后按硬件重新启动按钮,文件很有可能会损坏(!)(所有内容都变为\ 0个字符)。即使我等待几秒钟,关闭文件甚至关闭应用程序,我也可以在使用Windows 7、8.1和10的不同计算机上重现此内容。我在记事本,记事本++,画图,资源管理器中的文件复制和朴素的UWP文件读取/写入应用程序中尝试过。当我第一次看到这种行为时,我感到莫名其妙,并且不明白为什么在2017年突然停电之后,您仍然不能依靠文件被保存。
- 您是否应该期望文件突然断电而损坏?
- 您何时以及如何知道文件是否“永久”保存在硬盘驱动器上?
- 为什么文件仍然会像这样损坏,哪些安全网应防止这种情况发生?
- 如果有安全网在什么情况下会失效?
我认为使用file_write()操作时实际上并没有将文件写入指定位置,因为其中涉及一些缓存和日志记录,最后操作系统和/或磁盘控制器决定何时完成此操作。但是我认为特别是发明日记来防止这种情况。并且实际的文件写入应该在调用file_flush()或file_close()操作时发生。
更新:Windows中有一个选项->设备管理器->磁盘驱动器-> MyDiskDrive->属性->策略-> [x]在设备上启用写缓存
通过在设备上启用写缓存来提高系统性能,但是断电或设备故障可能会导致数据丢失或损坏
这与上面描述的行为完全匹配,除了即使我禁用写缓存,重新启动干净并再次测试,文件仍然损坏。WTF?
1
NTFS没有数据日记,只有元数据日记。
—
Daniel B
嗯,你是对的。“ NTFS是日记文件系统...记录卷中元数据的变化。...USN日记...可以在非系统卷上启用或禁用。” en.wikipedia.org/wiki/NTFS#Journaling msdn.microsoft.com/en-us/library/...