有两个QFile-pointer
指向同一个文件,它们属于不同的线程。一个将数据写入文件,另一个读取。但是我想只进行一次操作,读或写。
if(!this->file->exists()) {
qDebug()<<"The file is not exists";
}
if(this->file->isOpen()) {
qDebug()<<"The file is open";
}
让我换一种说法:如何检查文件是否已打开?
我测试file.isOpen()
?它不起作用。我怎么能这样做?
答案 0 :(得分:2)
听起来对我来说,你试图使用isOpen来查看另一个线程是否打开了同一个文件。 AFAIK isOpen只是告诉您当前的QFile实例是否打开了文件,而不是其他QFile实例。
我知道能够阻止不同线程读取和/或写入同一文件的唯一方法是使用文件锁定。
不太确定Qt是否有办法这样做而无需深入研究更依赖OS的API。