0

我正在使用 QTextStream 写入 QFile,一切都很好。我正在尝试创建一些错误检测,因此我尝试在写入之间删除输出文件。

扼杀,Qtextstream的状态继续显示0(没有错误),QFile的错误方法返回0。然而文件不见了,写入的文本正在丢失……不见了

这是怎么回事?如何检测写入失败?我在看错误的方法吗?

4

1 回答 1

1

不确定 Windows,但在 Linux 和大多数 Unix 类型的系统上,从操作系统的角度来看,您描述的场景根本不是错误 - 继续写入已删除的文件是完全合法的(并且它“工作”,数据仍然在文件系统中/从文件系统中混洗 - 这个文件仍然存在于文件系统中,直到它的最后一个句柄被关闭)。

(我相信在 Windows 上,如果您在使用文件时尝试删除文件,至少会在使用默认打开模式打开的情况下出现错误 - 但不是 100% 肯定。)

如果您需要检查“文件已删除”,您需要自己编写这些检查。

于 2013-10-03T04:39:50.210 回答