QFile::remove无法删除文件?

6

当我试图使用Qt删除刚下载的文件时,遇到了一个奇怪的问题。

我的代码:

QString location = "/path/to/app/Application.app";
QFile *rmFile = new QFile(location);
rmFile->remove();

文件没有被删除。

有什么想法可能是错的吗?


始终检查返回值。原因可能是权限不足,文件被占用或路径错误。 - user2672165
remove() 调用的返回值是什么?请参见 if(!rmFile->remove()) qDebug() << rmFile.errorString(); 此外,在这种特殊情况下,该实例使用过度了。你可以直接调用静态方法。 - László Papp
1
如果您使用的是 Mac,那么“/path/to/app/Application.app”指向的是一个目录,而不是文件,对吧? - vahancho
1个回答

7
如果您要处理的是目录,可以使用Qt 5中的以下API:

bool QDir::removeRecursively()

而不是使用QFile。因此,您需要编写类似于以下内容的代码:
QString location = "/path/to/app/Application.app";
QDir *rmDir = new QDir(location);
rmDir->removeRecursively();

请注意,仅仅为了这个简单的情况,我个人不会使用堆对象。栈对象就足够了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接