我正在使用以下代码在Linux上删除空文件夹:
bool removeFolder (const QString& path)
{
QDir dir(path);
assert(dir.exists());
return dir.rmdir(".");
}
由于某种原因,QDir::rmdir
有时会返回false(对于特定的文件夹,但这些文件夹似乎没有任何问题)。如果我随后使用来自<unistd.h>
的::rmdir
来删除相同的文件夹,则成功。
我如何知道QDir::rmdir
失败的原因?
到目前为止,在Windows上从未发生过这种情况,QDir::rmdir
正常工作。
rmdir
也容忍非空目录,而且它可以正常工作。我还有assert(dir.entryList(QDir::NoDotAndDotDot | QDir::Hidden | QDir::System).isEmpty())
,但它从未触发过。 - Violet Giraffedir.rmdir(path);
和dir.rmdir(".");
时,有什么区别吗?我不知道为什么会有区别。但是我也不知道为什么它会失败。 - Greenflow