精华内容
下载资源
问答
  • QT获取文件夹下文件名称

    千次阅读 2020-02-03 16:23:23
    1、头文件声明 #include <QDir> #include <QDebug> 2、主程序 QString path = "路径";//"F:/test" or "F:\\test" QDir dir(path); QStringList filter;...则默认获取所有文件的文件名,获取特...

    1、头文件声明

    #include <QDir>

    2、主程序

    /********************************************************
    输入:文件路径;保存全部文件名的容器
    /********************************************************/
    void findFile(const QString& path, std::vector<QString>& fileNames)
    {
        QDir dir(path);
        if(!dir.exists())
        {
            return;
        }
    
        //获取filePath下所有文件夹和文件
        dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);//文件夹|文件|不包含./和../
    
        //排序文件夹优先
        dir.setSorting(QDir::DirsFirst);
    
        //获取文件夹下所有文件(文件夹+文件)
        QFileInfoList list = dir.entryInfoList();
    
        /**********直接获取带文件后缀的文件;如果使用,则只搜索当前文件夹下的文件*************
        QStringList filer;
        filer << "*.jpg" <<"*.bmp";//设定需要的文件类型(*为所有类型)
        QFileInfoList list = dir.entryInfoList(filer);
        //QList<QFileInfo> *list= new QList<QFileInfo>(dir.entryInfoList(filter));
        /*******************************************************************************/
        
        /**********************只获取文件,只搜索当前文件夹下的文件************************
        QStringList list= dir.entryList(filer, QDir::Files | QDir::NoDotAndDotDot);
        /*******************************************************************************/
        
        if(list.size() == 0)
        {
            return;
        }
    
        //遍历
        for(int i = 0; i < list.size(); i++)
        {
            QFileInfo fileInfo = list.at(i);
    
            if(fileInfo.isDir())//判断是否为文件夹
            {
                findFile(fileInfo.filePath(), fileNames);//递归开始
            }
            else
            {
                if(fileInfo.suffix() == "bmp")//设定后缀
                {
                    fileNames.emplace_back(list.at(i).fileName());//保存全部文件名
                    //fileNames.emplace_back(list.at(i).filePath());//保存全部文件路径+文件名
                }
            }
        }
    }

        将文件夹下所有文件都保存在vector里面,之后遍历vector就能输入结果了 。保存的文件名类型为QString,要转换成std::string,只需要将用  “文件名.toStdString()”  就可以了。

    toStdString

    3、结果

     

    展开全文
  • qt实现的文件夹下文件的筛选,包括源码和可执行文件。 输入的匹配文件格式是csv或者txt,第一列是需要匹配的名字,以逗号(“,“)或者空格(“ ”)隔开,选择后匹配的数据会在列表中显示; 可以选择是进行移动还是...
  • QString strCurrentWorkDir = SysUI::EnvironmentSetting::Instance()->GetCurrentWorkDir(); QString strPathDir = QFileDialog::getExistingDirectory(this, translate("NewProjectDlg", "Open Dir"), strCurrent
    QString strCurrentWorkDir = SysUI::EnvironmentSetting::Instance()->GetCurrentWorkDir();
    QString strPathDir = QFileDialog::getExistingDirectory(this, translate("NewProjectDlg", "Open Dir"), strCurrentWorkDir);
    if (strPathDir.isEmpty()) return;
    
    QStringList ImgFilter;
    QString strExt = "*.tiff"; ImgFilter << strExt;
    strExt = "*.tif"; ImgFilter << strExt;
    strExt = "*.img"; ImgFilter << strExt;
    strExt = "*.pix"; ImgFilter << strExt;
    
    //定义迭代器并设置过滤器
    QDirIterator dir_iterator(strPathDir, ImgFilter, QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories);
    while (dir_iterator.hasNext())
    {
    	dir_iterator.next();
    	QFileInfo file_info = dir_iterator.fileInfo();
    	if (file_info.isFile())
    	{
    		QString file_path = file_info.absoluteFilePath();
    		file_path = QDir::toNativeSeparators(file_path);
    
    		QString strFile = file_path;
    		QString file_name = strFile.right(strFile.length() - strFile.lastIndexOf('\\') - 1);
    
    		for (int i = 0; i < m_vecSateInfo.size(); i++)
    		{
    			if (file_name.contains(m_vecSateInfo[i].strType) && file_name.contains(m_vecSateInfo[i].strIdentify))
    			{
    				if (m_vecSateInfo[i].strIdentify == "PAN" || m_vecSateInfo[i].strIdentify == "NAD" || m_vecSateInfo[i].strIdentify == "DGP")
    				{
    					m_vecPan.push_back(strFile);
    					break;
    				}
    				else
    				{ 
    					m_vecMss.push_back(strFile);
    					break;
    				}
    			}
    		}
    	}
    }

     

    展开全文
  • Qt 获取文件夹下所有文件

    千次阅读 2019-05-28 22:38:20
    QDir dir(path); QStringList nameFilters; nameFilters << "*.jpg" << "*.png"; files = dir.entryList(nameFilters, QDir::Files|QDir::Readable, QDir::Name);...QStringList getFi...
        QDir dir(path);
        QStringList nameFilters;
        nameFilters << "*.jpg" << "*.png";
        files = dir.entryList(nameFilters, QDir::Files|QDir::Readable, QDir::Name);
    QStringList getFileNames(const QString &path)
    {
        QDir dir(path);
        QStringList nameFilters;
        nameFilters << "*.jpg" << "*.png";
        QStringList files = dir.entryList(nameFilters, QDir::Files|QDir::Readable, QDir::Name);
    	return files;
    }

     

    展开全文
  • QDir:获取指定文件夹下的所有文件 示例代码 QString path = "xx/xx/xx/"; QDir dir(path); if (!dir.exists()) { qInfo() << "dir is null"; return; } //设置过滤器 dir.setFilter(QDir::Dirs | QDir::...

    QDir:获取指定文件夹下的所有文件

    示例代码

    QString path = "xx/xx/xx/";
    QDir dir(path);
    if (!dir.exists()) {
    	qInfo() << "dir is null";
    	return;
    }
    //设置过滤器
    dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
    dir.setSorting(QDir::Name | QDir::IgnoreCase); //按照名称排序
    

    QDir 设置过滤器

    QDir::Dirs - 显示文件夹
    QDir::AllDirs - 显示所有文件夹
    QDir::Files - 显示文件
    QDir::NoDotAndDotDot - 不显示系统中的特殊文件,例如"."和".."
    QDir::NoSymLinks - 不显示符号链接
    QDir::Hidden - 显示隐藏文件
    QDir::System - 显示系统文件
    QDir::Drives - 显示逻辑驱动器名称,该值在Linux/Unix系统中将被忽略
    QDir::NoDot - 不显示软链接文件,例如".文件"
    QDir::NoDotDot - 不显示"..文件"
    QDir::AllEntries - 又可以表示成Dirs | Files | Drives,显示目录,文件,驱动器及软链接等所有文件
    QDir::Readable - 显示当前应用有读权限的文件或目录,需要和Dirs或Files枚举值联合使用
    QDir::Writable - 显示当前应用有写权限的文件或目录,需要和Dirs或Files枚举值联合使用
    QDir::Executable - 显示当前应用有执行权限的文件或目录,需要和Dirs或Files枚举值联合使用
    QDir::Modified - 显示已被修改的文件,该值在Linux/Unix系统中将被忽略
    QDir::CaseSensitive - 设定过滤器为大小写敏感。
    

    QDir 设置排序

    QDir::Name - 按名称排序
    QDir::Time - 按时间排序(修改时间)
    QDir::Size - 按文件大小排序
    QDir::Unsorted - 不排序
    QDir::SortByMask - Name、Time和Size的掩码
    QDir::DirsFirst - 首先是目录,然后是文件
    QDir::Reversed - 相反的排序顺序
    QDir::IgnoreCase - 不区分大小写进行排序
    QDir::DefaultSort - 内部标记
    

    更多QDir资料

    QDirIterator:迭代器,用于遍历文件列表

    比起其他列表容器更方便管理
    hasNext()用于判断文件/目录是否存在,存在返回true,反之则返回false
    next()用户迭代器去取下个值
    两者配合使用可以遍历整个迭代器

    示例代码

    QDirIterator iterator(dir);
    while(iterator.hasNext()) {
    	qInfo() << "iterator.fileName = " << iterator.fileName;
    	iterator.next();
    }
    

    更多QDirIterator资料

    QFileInfo:获取文件详细信息

    示例代码

    QDirIterator iterator(dir);
    while(iterator.hasNext()) {
    	QFileInfo info(iterator.next());
    	QString name = info.fileName(); //获取文件名
    	QString fileName = info.filePath(); //文件目录+文件名
    	//获取文件时间
    	QDateTime time = info.created(); //文件创建时间
    	QDateTime time2 = info.lastModified(); //文件最近修改时间
    	QDateTime time3 = info.lastRead(); //文件最近读时间
    	QString strTime = time.toString("yyyy-MM-dd hh:mm:ss");
    	qInfo() << "name = " << name << "fileName = " << fileName << "strTime = " << strTime;
    	//XXX
    }
    

    QFileInfo类更多接口

    获取文件类型:
    isFile(), isDir(), isSymLink()
    获取权限:
    isReadable(), isWritable(), isExecutable()
    获取所有者:
    ower(), owerId(), group(), groupId(), permissions(),
    permission(QFile::Permissions permissions)
    获取文件前缀名
    baseName()
    获取文件的完整前缀名
    completeBaseName()
    获取文件后缀名
    suffix()
    获取文件的完整后缀名
    completeSuffix()
    获取所有文件名
    entryList()
    

    更多QFileInfo资料

    读写文件

    示例代码

    写文件

    QFile file(fileName);
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
    	return;
    QTextStream out(&file);
    out << "hello world";
    

    读文件

    QFile file(fileName);
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    	return;
    QTextStream in(&file);
    while (!in.atEnd()) {
    	QString line = in.readLine();
    	qInfo() << "line = " << line;
    }	
    

    更多QFile资料

    文件夹操作:创建与删除

    示例代码

    创建文件夹

    QFileInfo fileinfo("X/a.txt");
    if (!fileinfo.exists()) {
    	QDir().mkpath(fileinfo.absolutePath());
    }
    

    删除文件夹

    if (dir.exists(name)) {
    	dir.rmdir(name);
    }
    

    更多操作

    刷新目录下内容
    refresh()
    重命名目录
    rename()
    删除文件
    remove()
    
    展开全文
  • Qt之读取文件夹下所有文件概述:代码示例:over:文末一句话: 概述: 利用QDir类获取文件夹中指定文件后缀文件; 代码示例: void main_ui::getFiles(/*const QString &fileSuffix*/) { QString currDir = ...
  • QT获取文件夹下所有文件数目及名字

    万次阅读 2011-08-12 09:45:46
    path=QFileDialog::getExistingDirectory(NULL, tr("选择文件夹"),"D:\\",QFileDialog::ShowDirsOnly); QDir *dir=new QDir(path); QStringList filter;
  • 获取指定文件夹下的所有文件(*.tiff *.tif): mFolderPath = QFileDialog::getExistingDirectory(NULL, "Open Folder", "F:\\FocusImgs\\imgs\\a1"); if (mFolderPath.isEmpty()) return; // 获取所有文件名 ...
  • QT 遍历文件夹内容 读取指定文件

    千次阅读 2017-12-23 11:11:43
    qt中把各项功能封装的非常好,并且极为便于使用。QDir类提供了对目录结构和他们的内容的访问,是平台无关的。其实对一个类的理解重点还是在于这个类的要实现的功能目的,然后根据常识的理解来看看它所提供的几个...
  • 文章目录1、采用递归和 QDir 实现文件夹下所有文件遍历的方法2、QT 获取文件夹下所有文件数目及名字3、QT 遍历目录获取文件信息4、QDir 显示文件系统目录5、获取文件的 (完整) 后缀名和 (完整) 前缀名说明 ...
  • QT实现递归遍历所有文件夹下文件
  • Qt——获取文件夹下所有子文件名称

    千次阅读 2019-03-13 14:46:07
    在头文件夹声明 #include &lt;QDebug&gt; #include&lt;QFileDialog&gt; 主程序 QString filePath; QDir *dir=new QDir(filePath); QStringList filter; QList&lt;QFileInfo&gt; *...
  • Qt获取某文件夹下文件数目

    千次阅读 2017-03-24 13:40:13
    path=QFileDialog::getExistingDirectory(NULL, tr("选择文件夹"),"D:\\",QFileDialog::ShowDirsOnly); QDir *dir=new QDir(path); QStringList filter; //filter*.dat"; //dir->setNameFilters(filter); QList
  • 头文件包含 ...获取指定文件夹下的所有文件(*.tiff *.tif): mFolderPath = QFileDialog::getExistingDirectory(NULL, "Open Folder", "F:\\FocusImgs\\imgs\\a1"); if (mFolderPath.isEmpty()) re...
  • 遍历给定文件夹下所有子目录 void getAllFolds(const QString& foldPath,QStringList &folds){ QDirIterator it(foldPath,QDir::Dirs | QDir::NoDotAndDotDot ,QDirIterator::Subdirectories); while (it....
  • Qt删除文件夹及子文件夹全部文件时父文件夹一并删除的原因与解决办法 初学Qt文件操作,总会先去查阅各种资料,参考各种代码然后一点点地去调试。 我在编写“删除文件夹及子目录与所有文件”代码的时候,参考很多博客...
  • //获取文件夹路径 QString srcDirPath = QFileDialog::getExistingDirectory( this, "choose Directory", "/"); if (srcDirPath.isEmpty()) { return ; } //创建文件夹 QDir dir; if (!dir.exists(path))//检查...
  • 文章目录引言实现遍历指定路径的文件遍历指定路径的文件夹遍历查找所有磁盘运行 引言 之所以写本篇文章是第三次使用到文件夹遍历,获取特定后缀的文件这样的需求,所以记录下来作为自己的常用函数包储备。 实现可能...
  • * 遍历某个路径所有文件夹,以及子文件夹,找到目标文件,写入到filedata中 * * @param * imode 0: 只会遍历子当前件夹 (默认) 1:会遍历所有的子文件夹 * @return bool */ bool findPathLoadFile(const ...
  • (一)采用递归和QDir实现文件夹下所有文件遍历的方法 #include bool FindFile(const QString & path) {  QDir dir(path);  if (!dir.exists()) return false;  dir.setFilter(QDir::Dirs|QDir::Files);//除了...
  • VS2015 qt5.9.7 64位 包含的头文件 #include <QDir> #include <QDebug> #include <QMessageBox> 代码 //--1 判断文件夹是否存在 QString folderPath = "H:\\Pro"; QDir dir(folderPath); if(!dir...
  • 第7篇 实现Qt文本查找功能版权声明该文章原创于Qter开源社区( http://www.qter.org ),作者 yafeilinux ,转载请注明出处! 可以到 这里 讨论本文章!导语这一篇我们来添加查找菜单的功能。因为本篇还会涉及Qt ...
  • 本文主要用Qt5.9代码总结获取指定文件所在的文件夹路径和文件名称,比如获取指定文件E:/test.txt,具体内容如下所述。 一、核心函数讲解 主要用到的核心函数如下: const int QString::lastIndexOf(const ...
  • QT查找某个目录指定的某种文件

    千次阅读 2020-05-13 19:36:26
    * @brief: 查找某个目录特定类型的文件 * @author: XXX 2020 * @param: strFilePath:要搜索的文件夹 strNameFilters:要搜索的文件类型(例如"*.xml") * @return: 符合的文件列表 */ QFileInfoList FindFile...
  • linux遍历文件夹下文件

    千次阅读 2018-07-03 19:35:13
    工作中经常用到遍历文件夹,下面的三个小函数可能会对您遍历文件夹提供一些思路,代码都是...// 查找文件夹下的.XX格式的文件 list&lt;string&gt; getDirFile(const string dirPath,const char *extenSt...
  • 1. 判断文件夹是不是存在 参数说明: QString fullPath;//文件夹全路径 /*方法1*/ bool isDirExist(QString fullPath) { QDir dir(fullPath); if(dir.exists()) { return true; } return false; } /*方法2*/ bool i....
  • 获取文件夹路径 static QString getExistingDirectory(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &...
  • void getFileListDfs(const QString& path, QPair<QStringList, QStringList>& list, const QString& deep) { for(const QString& file : QDir(path + deep).entryList(QDir::Files)){ ...
  • bool FindFile(const QString & path) {  QDir dir(path);  if (!dir.exists())  return false;  dir.setFilter(QDir::Dirs|QDir::Files);  dir.setSorting(QDir::...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,341
精华内容 2,536
关键字:

qt查找文件夹下文件