删除非空文件夹
- 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();