Qt中如何从QString转换为QDir::Filters

Qt中如何从QString转换为QDir::Filters,第1张

这个函数只有这些参数

QDir::Dirs - 只列出目录。

QDir::Files - 只列出文件

QDir::Drives - 列出磁盘驱动器(在Unix下被忽略)。

QDir::NoSymLinks - 不列出符号连迹饥接(不支持符号连接的 *** 作系统会忽略它)。

QDir::All - 列出目录、文件、驱动器和符号连接(除非你指定系统,这不会列出损坏的符号连接)。

QDir::TypeMask - Dirs、Files、Drives和NoSymLink的掩码。

QDir::Readable - 列出应用程序可以读访问的文件。

QDir::Writable - 列出应用程序可以写访问的文件。

QDir::Executable - 列出应用程序可以执行访问的文件。可执行需要由Dirs和Files组合。

QDir::RWEMask - Readable、Writable和Executable标记的掩码。

QDir::Modified - 只列出已经被修改的文件(姿友返在Unix下被忽略)。

QDir::Hidden - 列出隐藏文件(在Unix下告裤就是以.开始的文件)。

QDir::System - 列出系统文件(在Unix下就是FIFO、套接字和设备文件)。

QDir::AccessMask - Readable、Writable、Executable、Modified、Hidden和System标记的掩码。

QDir::DefaultFilter - 内部标记

按照你的思路应该是这个函数

void addFilter ( const QString &filter )

大多数的教程里采用递归遍历的方式,而这种方式对内存的开销很大,效率低,本篇文章用栈大缺的知识来实现非递归遍历

源码:

QDir d("D:/viczsx/document/课程")        //滚伍辩此处修改遍历文件夹地址

d.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks | QDir::AllDirs)//列出文件,列出隐藏文件(在Unix下就是以.开始的为文件),不列出符号链接(不支持符号连接的 *** 作系统会忽略)

d.setSorting(QDir::Size | QDir::Reversed)//按文件大小排序,相反的排序顺序

QFileInfoList list = d.entryInfoList()//返回这个目录中所有目录和文件的QFileInfo对象的列表

while(!list.isEmpty()){

    QFileInfo tem= list.last()

    if(!tem.isDir()){

        qDebug()<<  tem.fileName()

        list.removeLast()

   橘扰 }else if(tem.fileName() != "." &&tem.fileName() != ".."){

        qDebug()<<tem.filePath()

        QDir a(tem.filePath())

        list.removeLast()          //移除链表最后一项方便退回

        list.append(a.entryInfoList())

    }else{

        list.removeLast()

    }

}

第一篇博客


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12214349.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存