现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

Qt编程:删除非空文件夹

2014-08-26 10:53 工业·编程 ⁄ 共 531字 ⁄ 字号 评论 1 条

QDir中有函数可以删除文件夹,但是只能删除空文件夹。于是使用了最原始的方法:遍历文件夹逐个删除文件。以下代码在Qt 5.1.0中测试通过。返回true表示文件夹不存在或被成功删除。

bool DeleteDirectory(const QString &path)
{
    if (path.isEmpty())
        return false;

    QDir dir(path);
    if(!dir.exists())
        return true;

    dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
    QFileInfoList fileList = dir.entryInfoList();
    foreach (QFileInfo fi, fileList)
    {
        if (fi.isFile())
            fi.dir().remove(fi.fileName());
        else
            DeleteDirectory(fi.absoluteFilePath());
    }
    return dir.rmpath(dir.absolutePath());
}

目前有 1 条留言    访客:1 条, 博主:0 条

  1. thinking空 2014年12月19日 6:57 下午  @回复  Δ1楼 回复

    十分感谢,可以直接用。 :smile:

给我留言

留言无头像?