qt删除非空文件夹

删除非空文件夹

  • qt提供的API只能删除空目录,对于非空目录就无能为力。简单实现了删除非空目录,具体代码如下。

主要接口

  • RemoveAllFiles:实现删除指定目录下的所有文件。包括文件和文件夹,bForce这个参数决定是否删除只读文件。

  • SetFilePermissions:修改文件权限。如果要删除只读文件,必须先把文件权限修改为只读。

  • RemoveFilesInDir:调用qt接口实现递归删除指定目录下的所有文件和文件夹。

      void RemoveAllFiles( const QString& strDestDir, bool bForce /*= false*/ )
      {
      	if (bForce)
      	{
      		SetFilePermissions(strDestDir,QFile::WriteOther);
      	}
    
      	RemoveFilesInDir(strDestDir);
    
      	QDir dir(strDestDir);
      	if (!dir.exists())
      	{
      		dir.mkdir(strDestDir);
      	}
      }
    
      void SetFilePermissions( const QString &path, QFile::Permission euPermission )
      {
      	if (path.isEmpty())
      	{
      		return ;
      	}
    
      	QDir dir(path);
      	if(!dir.exists())
      	{
      		return ;
      	}
    
      	dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
      	QFileInfoList fileList = dir.entryInfoList();
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值