QStorageInfo说磁盘已经准备好使用,而它还没有



Mac OS X El Capitan 10.11.6.

我有一个外部驱动器。在我的应用程序中,我监视它是否连接到PC。 为此,我使用QStorageInfo为其提供驱动器的根路径。

在该驱动器上,我有一个文件,其中包含它的已知路径。连接驱动器后,我需要检查文件是否存在。

问题是,一旦我连接驱动器,QStorageInfo开始返回isValidisReadytrue,但是当文件确实存在于驱动器上时,QFile::exists返回false。它会在几秒钟内不断返回false。在那几秒钟之后,它开始返回true.

是Qt/MAC中的错误还是我错过了什么?

Qt 5.9.1.

附言它在 Windows 10 上运行良好。

补充 #1。代码示例。

QStorageInfo s(storageRootPath);
if (s.isValid() && s.isReady())
{
auto exists = QFile::exists(pathToFile); // getting false here for a few seconds
}

看起来像Apple CoreFoundation API中的一个错误。

最新更新