QT-用QDir非递归遍历子文件夹及其文件

QT-用QDir非递归遍历子文件夹及其文件,第1张

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

源码:

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

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

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

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

while(!listisEmpty()){

    QFileInfo tem= listlast();

    if(!temisDir()){

        qDebug()<<  temfileName();

        listremoveLast();

    }else if(temfileName() != "" && temfileName() != ""){

        qDebug()<< temfilePath();

        QDir a(temfilePath());

        listremoveLast();          //移除链表最后一项方便退回

        listappend(aentryInfoList());

    }else{

        listremoveLast();

    }

}

第一篇博客

qt读写文件内容老丢失

可能是文件被破坏或读取数据时出错导致的。要解决该问题,可以尝试使用Qt提供的QFile类来检查文件的状态和大小,以确保文件是完整的。同时,还可以使用Qt提供的QDataStream类来避免出现错误读取数据,从而保证数据的完整性。

①执行“视图→工具栏→控件工具箱”命令,展开“其他控件”按钮,“控件工具箱”工具栏

②单击工具栏上,在d出的下拉列表中,选择“ShockwaveFlashObject”选项,当鼠标变成细十字线,按住左键在工作区中拖出一个矩形(这就是后来的播放窗口)。当

③鼠标移到矩形框入右下角拖动方向的箭头,按住左键并拖动来调整矩形的大小的权利。在矩形框

④单击鼠标右键,在随后d出的快捷菜单中选择“属性”选项,打开“属性”对话框中,输入需要在“**”插入Flash动画文件名后面的框和完整路径,然后选择关闭“属性”窗口。

注:为了方便移动演示,与保存在同一文件夹中的Flash动画文件的最佳表现,那么路径也可以使用相对路径。

[提示]:Flash动画文件名和完整路径需要插入最好的英文字符!

最近在研究用静态编译的 Qt 做个 Qt 的安装包程序,因为 nsis 在界面自定义还有多语言适配等问题上不太理想。做安装包程序基本上只需要有最基础的 Qt 界面模块即可,不过把除了 UI 的模块全部去掉又比较难用这里记录下两种极端编译配置下生成的程序大小作为参考。

编译需要的环境可以看官方文档, windows-requirements 中的 Building from Source 有说明需要安装的工具,所有工具都记得要添加到环境变量。

最后的-mp 是多核编译的参数,多核编译用 jom 快得一匹,全模块也只要 20 分钟编译完成。

这个配置把能删的模块都删了,编译出来后基本也就基础UI相关类能用所以编译起来超快的。

比全模块配置生成的exe减少了 30%的大小,不过 30%也就 3M,在 windows 平台的话倒是没必要追求这种极致了=-=

此时如果是移动了编译后的路径,可能报错 Qt version is not properly installed,please run make install 。在 qmakeexe 所在目录新建一个 qtconf 文件,并添加下面的内容即可:

Linuxunzip命令用于解压缩zip文件,unzip为zip压缩文件的解压缩程序。语法参数:-c将解压缩的结果显示到屏幕上,并对字符做适当的转换。-f更新现有的文件。-l显示压缩文件内所包含的文件。-p与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任开发云主机域名何的转换。-t检查压缩文件是否正确。-u与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。-v执行是时显示详细的信息。-z仅显示压缩文件的备注文字。-a对文本文件进行必要的字符转换。-b不要对文本文件进行字符转换。-C压缩文件中的文件名称区分大小写。-j不处理压缩文件中原有的目录路径。-L将压缩文件中的全部文件名改为小写。-M将输出结果送到more程序处理。-n解压缩时不要覆盖原有的文件。-o不必先询问用户,unzip执行后覆盖原有文件。-P使用zip的密码选项。-q执行时不显示任何信息。-s将文件名中的空白字符转换为底线字符。-V保留VMS的文件版本信息。-X解压缩时同时回存文件原来的UID/GID。[zip文件]指定zip压缩文件。[文件]指定要处理zip压缩文件中的哪些文件。-d指定文件解压缩后所要存储的目录。-x指定不要处理zip压缩文件中的哪些文件。-Zunzip-Z等于执行zipinfo指令。

你的 *** 作系统,文件系统是什么版本? *** 作系统本身对文件大小的限制是什么?

还真没听说过sqlite支持TB级,它的大小受制于运行时的文件系统。

下面是原文解释支持的大小:

Every database consists of one or more "pages" Within a single database, every page is the same size, but different database can have page sizes that are powers of two between 512 and 65536, inclusive The maximum size of a database file is 2147483646 pages At the maximum page size of 65536 bytes, this translates into a maximum database size of approximately 14e+14 bytes (140 terabytes, or 128 tebibytes, or 140,000 gigabytes or 128,000 gibibytes)

以上就是关于QT-用QDir非递归遍历子文件夹及其文件全部的内容,包括:QT-用QDir非递归遍历子文件夹及其文件、qt读写文件内容老丢失、QT treewidget控件怎么能实现从指定的文件夹里面的每个子文件夹中读取指定格式的文件(如.txt)并显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9444376.html

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

发表评论

登录后才能评论

评论列表(0条)

保存