2

是否有一个很好的教程或者有人可以指导我完成处理文件的过程QFile?我需要正确处理它们,提出适当的错误并确保至少检查错误。

到目前为止,我一直在使用这段代码:

QFile f("/home/skamah/documents/myfile.txt");
if (!f.exists())
    QMessageBox("File error", "File doesn't exist.").show();
QTextStream in(&file);
QString content = in.readAll();

但是,我觉得这是一种非常原始的文件读取方式;从 qt doc 中,我发现有一个方法调用error()它返回一个 int 值,具体取决于它给出的错误。我应该用那个吗?是否有关于提出什么样的错误的约定?

4

1 回答 1

1

Qt 文档是最好的指南。如果你读过它,你就会知道该error()方法返回QFile::FileError值,而不是 int。

对于每种方法(openread),都有一种方法可以确定它是否成功。它在方法的文档中进行了描述。基本规则:如果要确保一切顺利,则需要在每次方法调用后进行检查。在您确定有问题后,您可以选择如何通知调用代码或用户,以及提供哪些附加信息。例如,您可以使用例外。

但是,QFile 缺乏确定错误真正原因的能力。例如,它无法确定是否无法写入文件,因为磁盘上没有剩余空间。而且Qt内部不使用异常,所以每次调用后都需要手动检查错误。

于 2013-06-16T19:00:00.207 回答