在Excel中打开时,使用QFile写入文件失败,没有错误代码

我尝试用QFile写入一个现有的文件,它按预期工作。 但是,问题是,如果文件在Excel中打开,从我的程序写入文件失败。

我尝试使用QFileInfotesting权限,并具有文件的所有读写权限。 考试

bool opened = file-> open (QIODevice :: WriteOnly) 

返回true。

用notepad ++打开文件时不会发生同样的问题。

如何检查文件是否被locking,无法写入?

Excel将其打开的文件locking为专用。 您不能写入打开的文件,移动或删除它。 没有办法绕过这个锁。

另请参阅: 无论locking状态如何,都写入locking的文件

当您使用QFile ::写入函数时,它将返回写入的字节数,如果发生错误,则返回-1。

如果您检查写入函数的返回代码,您应该可以使用它来确定文件被另一个进程locking。

调用QFile :: open将返回没有错误,因为即使另一个进程已经locking它,仍然可以获得该文件的有效句柄,从而防止您同时写入该文件。