我正在使用QTextStream写一个QFile,一切都很棒。我正在尝试创建一些错误检测,所以我尝试在写入之间删除输出文件。
扼杀,Qtextstream的状态继续显示0(无错误),QFile的错误方法返回0.但文件已经消失,写入的文字丢失了......已经消失了
发生了什么事?如何检测写入失败?我在看错了方法吗?
答案 0 :(得分:1)
不确定Windows,但在Linux和大多数Unix类型的系统上,从操作系统的角度来看,您所描述的场景根本不是错误 - 继续写入已删除的文件是完全合法的(并且它“工作”,数据仍然是文件系统的混乱 - 文件系统中的文件仍然存在,直到它的最后一个句柄被关闭为止。
(我相信在Windows上,如果您尝试在使用文件时删除该文件,则会出现错误,至少在使用默认打开模式打开时 - 尽管不是100%确定。)
如果您需要检查“已删除文件”,则需要自行编写这些检查。