当前位置:   article > 正文

qt删除非空文件夹_qt删除非空目录

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();
      	foreach (QFileInfo fi, fileList)
      	{
      		if (fi.isFile())
      		{
      			QFile file(fi.absoluteFilePath());
      			file.setPermissions(euPermission);
      		}
      		else
      		{
      			SetFilePermissions(fi.absoluteFilePath(),euPermission);
      		}
      	}
      }
    
      void RemoveFilesInDir( const QString &path )
      {
      	if (!path.isEmpty() && QDir::isAbsolutePath(path))
      	{
      		QDir dir(path);
      		dir.removeRecursively();		
      	}
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/652771
推荐阅读
相关标签
  

闽ICP备14008679号