学习记录-Qt删除文件夹
2015-12-22 22:39
309 查看
写的软件需要进行文件夹的复制,开始不怎么懂就找了个拷贝文件夹的代码测试了一下,运行程序选择了源目录和目标目录相同进行拷贝,结果悲剧了。因为是递归拷贝,导致文件夹被嵌套N层,软件死机,强制结束后,产生的文件夹有N多层,右键删除说文件名太长无法删除。网上找了很多方法都无法清理掉这个嵌套的文件夹,折磨了N久,终于想通,既然是Qt生成的嵌套文件夹,为何不用Qt再写一个删除的程序呢?于是动手查看help,找API函数说明,码代码。
使用这个一定要小心,别写错删除了重要的东西,哈哈!
//删除文件夹 bool MainWindow::DelDir(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 file, fileList){ //遍历文件信息 if (file.isFile()){ // 是文件,删除 file.dir().remove(file.fileName()); }else{ // 递归删除 DelDir(file.absoluteFilePath()); } } return dir.rmpath(dir.absolutePath()); // 删除文件夹 }这样,新建一个QFileDialog传入文件路径就可以将文件夹彻底删除,不用windows的右键删除了。(在这之前还重启系统去用U盘启动pe系统来删除都没搞定,囧)
使用这个一定要小心,别写错删除了重要的东西,哈哈!
相关文章推荐
- QT开源编辑器CuteMarkEd
- Qt学习之路(7):事件初了解|重写鼠标点击事件
- QT实现,通过URL下载文件的接口实现
- qt-example之animated picture的学习
- QT全局热键(用nativeKeycode封装API,不跨平台)
- QT学习之路(6)构建文件对话框
- Qt 操作字符串型的xml
- QT widget 方法
- MQTT协议笔记之连接和心跳
- QT中中文注释的问题
- 写在学习Qt之前
- Windows下Qt程序打包成
- MQTT协议详解
- QT使用默认浏览器打开网页
- 玩转四旋翼无人机(DJI_QT_SDK)
- Qt学习(11)
- QT5.4.1在ARM开发板上不能显示汉字
- QTP 遍历控件-例子
- 分享几个Qt界面绘图时使用到的坐标计算算法
- Qt学习之路(5):对话框传递数据|标准对话框QMessageBox