Qt 文件管理 文件夹

1 创建文件夹

//folder 是路径,可以是绝对或相对路径
bool PathHelper::createDirectory(QString folder)
{

	// 检查目录是否存在,若不存在则新建
	QDir dir;
	if (!dir.exists(folder))
	{
		bool res = dir.mkpath(folder);
		return true;
	}
	else 
	{
		return false;
	}
}

2删除文件夹

bool PathHelper::DelDir(const QString  name)
{
	PathHelper::intial();
	QString path = productPath + "/" + name;
	if (path.isEmpty()) {
		return false;
	}
	QDir dir(path);
	if (!dir.exists()) {
		return true;
	}
	bool flag =RemoveDirectory(path.toStdWString().c_str());
	//dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); //设置过滤
	//QFileInfoList fileList = dir.entryInfoList(); // 获取所有的文件信息
	//foreach(QFileInfo file, fileList) { //遍历文件信息
	//	if (file.isFile()) { // 是文件,删除
	//		file.dir().remove(file.fileName());
	//	}
	//	else { // 递归删除
	//		DelDir(file.absoluteFilePath());
	//	}
	//}
	return flag; // 删除文件夹
}

3获取一个目录下所有文件夹的名字

void PathHelper::GetAllFileFolder(std::vector<QString>& folder)
{
	PathHelper::intial();

	QDir dir(productPath);
	dir.setFilter(QDir::Dirs);
//遍历
	foreach(QFileInfo fullDir, dir.entryInfoList())
	{
		if (fullDir.fileName() == "." || fullDir.fileName() == "..") continue;
		folder.push_back(fullDir.baseName());

		// this->GetAllFileFolder(fullDir.absoluteFilePath(), folder);
	}


}

猜你喜欢

转载自blog.csdn.net/U201414786/article/details/85341567