Qt 递归删除空文件夹及递归生成文件夹的方法

初次接触C++ & Qt,函数写得不好请见谅 [哭笑]

头文件引入

#include <QDir>

递归删除空文件夹

// 递归删除空目录
bool deleteDirectorys(const QString& directory)
{
	QDir sourceDir(directory);
	if (!sourceDir.exists())
		return true;

	sourceDir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);

	for (int i = 0; i < sourceDir.count(); i++)
	{
		QString path = sourceDir[i];

		QDir childDir(directory + "/" + path);
		QString childPath = childDir.path();

		if (!childDir.rmdir(childPath) && childDir.count() > 0)
		{
			deleteDirectorys(childPath);
			continue;
		}
	}

	sourceDir.rmdir(directory);

	return true;
}

递归生成文件夹

// 递归生成目录
bool UpdaterWindow::generateDirectorys(const QString& directory)
{
	QDir sourceDir(directory);
	if (sourceDir.exists())
		return true;

	QString tempDir;
	QStringList directorys = directory.split("/");
	for (int i = 0; i < directorys.count(); i++)
	{
		QString path = directorys[i];
		tempDir += path + "/";

		QDir dir(tempDir);
		if (!dir.exists() && !dir.mkdir(tempDir))
			return false;
	}

	return true;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值