关闭

QT中在全盘中寻找特定的文件

标签: QT
981人阅读 评论(0) 收藏 举报
分类:
1.在全盘中寻找特定的文件 
<pre name="code" class="cpp">#include "mainwindow.h"
#include <QApplication>
#include <QFileSystemModel>
#include <QTreeView>
#include <QList>

typedef struct fileNamePath
{
	QString strFileName;
	QString strFilePath;
}sfileNamePath;
QList<sfileNamePath> g_sfnp;
//在strDir这个文件夹下面找到fileName这种文件
void findSpecialFile(QString strDir,QStringList fileName)
{
	QDir curdir(strDir);
	curdir.setFilter(QDir::AllEntries|QDir::NoDotAndDotDot);
	QFileInfoList curdirlist = curdir.entryInfoList();
	foreach(QFileInfo sfiles,curdirlist)
	{
		QString sfilesname=sfiles.fileName();
		if (sfiles.isDir()==true)
		{
			QString strFileName=sfiles.filePath();
			findSpecialFile(strFileName,fileName);
		}
		if (sfiles.isFile()==true)
		{
			//QList<sfileNamePath> scurDir=findSpecialFile(sfiles.fileName(),fileName);
			QString ext = "*."+sfiles.suffix();
			if (fileName.contains(ext,Qt::CaseInsensitive))
			{
				sfileNamePath snew;
				snew.strFileName=sfiles.fileName();
				snew.strFilePath=sfiles.filePath();
				g_sfnp.append(snew);
			}
		}
	}

	//return s;
}
int main(int argc, char *argv[])
{
	QApplication app(argc, argv);

	//先找到所有的ICE的名字与路径
	QFileInfoList DirInfoList=QDir::drives();//drives(), current(), home(), and root().
	QStringList fileName;
	fileName<<"*.ice";//<<"*.txt";
	foreach(QFileInfo fileInfo ,DirInfoList)
	{
		QString qStr=fileInfo.path();
		findSpecialFile(qStr,fileName);
	}
	int ncnt=g_sfnp.count();
	return app.exec();
}

图:



   
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:193967次
    • 积分:3010
    • 等级:
    • 排名:第12056名
    • 原创:102篇
    • 转载:29篇
    • 译文:1篇
    • 评论:20条
    最新评论
    我的CSDN链接
    https://www.baidu.com/index.php?tn=98012088_2_dg&ch=5