QT5删除隐藏目录+隐藏文件

1、功能需求

  删除一个目录(包括目录本身),同时删除该目录中所有文件及目录(含隐藏的)

2、遇到的问题

  qt5中已经有了递归删除目录的函数--->bool QDir::removeRecursively()

  例如:这里要删除d:/22/33目录

  QDir dir("d:/22/33");
  dir.removeRecursively(); //33目录以及里面的内容全部删除

  但是,如果33目录中有隐藏的目录或文件,就会删除失败(非隐藏的目录或文件正常删除)

  那么,在windows下删除目录的命令为:rmdir /s /q 目录路径

  直接用Qprocess调用windows命令怎么样呢? 呵呵,好像是删不掉的哦(原因未知)

3、解决办法

  使用脚本删除目录(可行):

QDir dir("d:/22/33");
    QFileInfo rmInfo("rm.bat");
    if (!rmInfo.exists()) {
        QFile file("rm.bat");
        if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
            QTextStream text(&file);
            text << "rmdir /s /q %1";
        }
        file.close();
    }
 QProcess process;
process.setWorkingDirectory(QDir::currentPath());
process.start("rm.bat", QStringList() << dir.absolutePath().replace('/', '\\') );
process.waitForFinished();

  这样的话,就可以删除含有隐藏目录或文件的目录了。

转载于:https://www.cnblogs.com/luoxiang/p/5819487.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值