前段时间,需要做一个功能是要做文件系统的排序的功能。由于是自己写的model, 自己定义的数据结构。最初的想法只有一个自己去实现文件夹跟文件名的排序算法,不过感觉比较费时间。后来想到的是QFileSystemModel就是Qt标准的文件系统的model,可以把里面关于排序的算法提出来,没有必要重复造轮子。看了一下QFileSystemModel的源码,找到的排序算法如下(主要单元在qfilesystemmodel.cpp):
1)文件系统的文件名排序主要涉及到文件夹跟文件的顺序(文件夹要排在文件前),文件大小的排序,文件类型,修改时间的排序
2)QFileSystemModel重写了sort
void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);