删除目标的目录,若该目录下有子目录,一并删除。

 //判断是否存在子目录
bool judgeDir(QDir dir)
{
dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
foreach(QFileInfo fileInfo, dir.entryInfoList())
{
if(fileInfo.isDir())
{
return true;
}
else if(fileInfo.isFile())
{
return true;
}
else
{
return false;
}
}
return true;
} //删除目标目录
void delDir(QString path)
{
if(path.isEmpty())
{
QMessageBox::warning(this,tr("警告"),tr("路径为空"),QMessageBox::Yes);
return;
}
QDir dir(path); dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
foreach(QFileInfo fileInfo, dir.entryInfoList())
{
if(fileInfo.isFile())
{
if(!fileInfo.isWritable())
{
QFile file(fileInfo.absoluteFilePath());
file.setPermissions(QFile::WriteOwner);
} fileInfo.dir().remove(fileInfo.fileName()); }
else if(fileInfo.isDir())
{
delDir(fileInfo.absoluteFilePath());
}
}
dir.rmpath(dir.absolutePath());
} //删除传入的目录
void deleteFile(QString path)
{
QDir dir(path);
int saveDel = QMessageBox::question(this,tr("提示"),tr("确定删除目录").arg(path), QMessageBox::Yes | QMessageBox::No ); if(QMessageBox::Yes == saveDel)
{
QDir currentDir(path);
if(judgeDir(currentDir))
{
delDir(currentDir.absolutePath());
}
else
{
dir.rmdir(path);
}
}
}

Qt 删除目录的更多相关文章

  1. Qt递归拷贝和删除目录

    最近在翻看项目代码时,看到了这两个函数,想到这个功能十分常用,因此拿出来与大家分享,希望对大家有用.几点说明: 1.记得当初写代码那会,是参考了网上的帖子写的,做了一点小修改.因此代码源于网络. 2. ...

  2. Qt 文件处理(readLine可以读取char[],并且有qSetFieldWidth qSetPadChar 等全局函数)

    Qt 文件处理 Qt提供了QFile类来进行文件处理,为了更方便地处理文本文件或二进制文件,Qt还提了QTextStream类和QDataStream类,处理临时文件可以使用QTemporaryFil ...

  3. QT | 记录自己遇到的报错

    QT 常见报错,及相应对策 0. 遇到所有莫名其妙的问题(完全按照教程,但一直报错) 删除工程文件同级目录下的构建文件(以build开头的文件夹) 重新执行qmake 重新构建项目 检查所有的路径问题 ...

  4. 零基础学QT编程

    吴迪.2010.1 北京航空航天大学出版社   Qt资源 CSDN QT http://bbs.csdn.net/forums/Qt/ QT编程网 http://www.qtbcw.com/ 编程论坛 ...

  5. Qt QFileSystemModel QDirModel 示例代码, 使用方法

    1.  QFileSystemModel 查看,添加 和 删除目录 2. 实现代码 dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QD ...

  6. Qt文本读写之二:目录操作

    一.简介 QDir类用来访问目录结构及其内容,可以操作路径名.访问路径和文件相关信息以及操作底层的文件系统,还可以访问Qt的资源系统.Qt使用"/"作为通用的目录分隔符和URLs的 ...

  7. 安装包设计-------安装(QT)---------知识总结

    1.判断文件是否存在 QFile file(path): file.exists(); 2.复制文件 bool copy(const QString &fileName, const QStr ...

  8. Qt:QDir

    0.说明 QDir提供了访问目录及目录下内容的类. QDir既可以用于访问文件系统,也可以用于访问Qt 资源系统(Qt's resource system.). Qt用 "/" 作 ...

  9. QT内省机制、自定义Model、数据库

    本文将介绍自定义Model过程中数据库数据源的获取方法,我使用过以下三种方式获取数据库数据源: 创建 存储对应数据库所有字段的 结构体,将结构体置于容器中返回,然后根据索引值(QModelIndex) ...

随机推荐

  1. Mweb发布博客

    1.设置 + 选择红色 2     输入该输入的帐号和密码  博客网址就是你的博客文章页的地址,然后输入帐号和密码 3 API 地址在 设置-->博客设置,红色标记就是API地址 4 发布, ...

  2. 树莓派3b无驱动打印

    Linux系统下很少有对打印机做驱动支持,自己做起来又有非常麻烦,还好大多数打印机都能够支持escpos协议,因此我们可以做到无驱动打印. 1.安装python-usb库 git clone http ...

  3. 搭建OpenSTF+Jenkins持续集成环境的协同开发

    最近在研究如何将OpenSTF与Jenkins进行协同开发,刚刚爬梯子看了些资料,赶紧记录下来. 转载请注明出处:https://www.cnblogs.com/v88v/p/10405338.htm ...

  4. php+mysql 数据库分表分段备份程序--宋正河

    <?php //宋正河 转载请注明出处 set_time_limit(0); header('content-type:text/html;charset=utf-8'); mysql_conn ...

  5. LintCode——尾部的零

    尾部的零:设计一个算法,计算出n阶乘中尾部零的个数 样例:11! = 39916800.因此应该返回2 分析:假如你把1 × 2 ×3× 4 ×……×N中每一个因数分解质因数,例如 1 × 2 × 3 ...

  6. Docker--Dockerfile引用及指令集的功能用法

    Dockerfile引用的官网文档:https://docs.docker.com/engine/reference/builder/ 编写Dockerfiles的最佳实践的官网文档:https:// ...

  7. NIKTO介绍及使用方法

    1.    NIKTO:perl语言开发的开源WEB安全扫描器:识别网站软件版本:搜索存在安全隐患的文件:检查服务器配置漏洞:检查WEB Application层面的安全隐患:避免404误判(原因:很 ...

  8. Redis勒索事件爆发,如何避免从删库到跑路?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB发表于云+社区专栏 9月10日下午,又一起规模化利用Redis未授权访问漏洞攻击数据库的事件发生,此次 ...

  9. Cocos2d-x的跨平台原理

    为了充分发挥硬件性能,手机游戏通常使用Native App开发模式,这就造成开发商要为iOS 和Android平台用户开发不同的应用,无论是产品迭代还是运行维护都非常麻烦.Cocos2d-x在iOS, ...

  10. tar.gz 文件解压 (安装 netbean 时会用到)

    sudo tar xvf jdk-7u45-linux-i586.tar.gz -C /usr/lib 参考文章 http://hi.baidu.com/xiaomeng008/item/5e787b ...