博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt删除文件和文件夹
阅读量:2193 次
发布时间:2019-05-02

本文共 1955 字,大约阅读时间需要 6 分钟。

在使用电脑的时候,有时候我们需要删除文件和文件夹,手动操作一个一个的删除就比较麻烦,有时候某个特定的文件还删除不了,写一个程序来实现删除功能就方便很多,Qt里就有自带的类可以方便的执行删除功能,下面来看具体的示例:

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include 
QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = nullptr); ~MainWindow();protected: bool deleteDir(const QString &path);public slots: void slotDeleteDirAndFile();private: Ui::MainWindow *ui; int m_fileCount; //统计删除文件的个数};#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"#include 
#include
#include
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(slotDeleteDirAndFile()));}MainWindow::~MainWindow(){ delete ui;}void MainWindow::slotDeleteDirAndFile(){ QString path = "C:\\Users\\Administrator\\AppData\\Local\\Temp"; deleteDir(path);}bool MainWindow::deleteDir(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()){ // 是文件,删除 bool isDelete = file.dir().remove(file.fileName()); if(isDelete) { m_fileCount++; } qDebug() << "isDelete= " << isDelete << " m_fileCount = " << m_fileCount << " filename= " << file.fileName(); }else{ // 递归删除 deleteDir(file.absoluteFilePath()); } } return dir.rmpath(dir.absolutePath()); // 删除文件夹}

main.cpp文件

#include "mainwindow.h"#include 
int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}

 

 

 

 

 

 

转载地址:http://briub.baihongyu.com/

你可能感兴趣的文章
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>
剑指offer 60. 不用加减乘除做加法
查看>>
Leetcode C++《热题 Hot 100-14》283.移动零
查看>>
Leetcode C++《热题 Hot 100-15》437.路径总和III
查看>>
Leetcode C++《热题 Hot 100-17》461.汉明距离
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>