Qt 获取文件夹中的文件夹名字

目录

Qt 获取文件夹中的文件夹名字

QDir类的学习和使用 (***)

---------------------------------------------------------------

摘要:

文件和目录内容

目录下包含许多内容,里面有文件、目录符号链接(linux的术语,类似Windows下的快捷方式)。

count()函数返回目录中的条目数总数。

entryList()函数是获取目录中所有项的名称的字符串列表。

如果要得到有关每个条目的信息,请使用 entryInfoList()函数得到一个QFileInfo对象的列表。

uintQDir::count() const返回的是该目录下文件的个数,只是这个对象的子目录,这个同样可以用在 entryList().count,
QStringListentryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const不带参返回所有的内容,这个带参使用的更好,可以通过设置参数来选择过滤项和排序功能,他有两个重载函数,
QFileInfoListentryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

返回一个以 QFileInfo 对象形式存在的列表,根据先前使用 setname filters()和setFilter()设置的名称和属性筛选器排序,并根据使用setSorting()设置的标志排序。

可以使用name filters、filters和sort参数重写名称筛选器文件属性筛选器排序规范。则返回空列表。

1
2
3
4
5
6
7
8
9
10

QDir two("C:/Users/Administrator/Desktop");
two.cd("D:/Altium");
qDebug()<<"the count of two: "<<two.count();
qDebug()<<"目录下的'D:/Altium' 文件列表:"<<two.entryList();
qDebug()<<"目录下的'D:/Altium' 文件列表下的详细信息:"<<two.entryInfoList();

//运行结果
the count of two:  6
目录下的'D:/Altium' 文件列表: (".", "..", "AD18", "Documents", "新建 DOCX 文档.docx", "新建文本文档.txt")
目录下的'D:/Altium' 文件列表下的详细信息: (QFileInfo(D:\Altium\.), QFileInfo(D:\Altium\..), QFileInfo(D:\Altium\AD18), QFileInfo(D:\Altium\Documents), QFileInfo(D:\Altium\新建 DOCX 文档.docx), QFileInfo(D:\Altium\新建文本文档.txt))

QFileInfoList entryList 包含了更多的信息。

更多的信息,就意味着需要占用更大的内存。

测试的输出结果:

    QDir tempDir("C:/abcDir/defDir");
    qDebug()<<"tempDir.Name" << tempDir.dirName();
    QStringList names = tempDir.entryList(QDir::Dirs);
    qDebug()<<"names" << names;
    
    qDebug()<<"entryList : === " <<tempDir.entryList(); //获得:文件夹名、或文件名。
    qDebug()<<"entryInfoList : === " <<tempDir.entryInfoList();  //获得:QFileInfo
    
   entryList: names (".", "..", "axDirOrFile", "bxDirOrFile",
   entryInfoList() : entryInfoList : ===  (QFileInfo(C:\abcDir\defDir\.), QFileInfo(C:\abcDir\defDir\..),....

====================================

Qt 获取文件夹中的文件夹名字

环境

VS2015 qt5.9.7 64位

包含的头文件

1 #include <QDir>
2 #include <QDebug>
3 #include <QMessageBox>

代码

//--1 判断文件夹是否存在
QString folderPath = "H:\\Pro";
QDir dir(folderPath);
if(!dir.exists())
{
    QMessageBox::critical(this,tr("错误"),tr("文件夹找不到"));
    return;
}

//--2 获取当前路径下所有的文件夹名字
QStringList names = dir.entryList(QDir::Dirs);

//--3 删除当前文件夹和上级文件夹(温馨提示:隐藏的文件夹获取不了)
names.removeOne(".");
names.removeOne("..");

//--4 打印出获取的文件名
qDebug() << "names: " << names;

  https://www.cnblogs.com/ybqjymy/p/13632898.html

QDir类的学习和使用 (***)

  https://www.codenong.com/cs106478069/

文章目录

  • Qt5的QDir类的学习
    • 概述:
      • 相对路径与绝对路径
        • 相对性判断
        • 存在性判断
        • 相对路径转绝对路径
      • 导航和路径操作
        • 获取和设置QDir的值
        • 切换路径
        • 新建删除重命名文件夹
      • 文件和目录内容
        • 过滤文件内容
        • 文件路径添加和删除
      • 当前目录和其他特殊路径
        • 当前目录
        • 特殊路径
      • 路径操作和字符串
      • 附录
        • 文件属性标志
        • 文件排序标志

概述:

? QDir是可以访问 目录结构和目录结构里内容,主要是对目录,但不是对目录里的文件内容的具体信息的操作。为了通俗来学习,我更愿意使用 ‘路径’ 把目录这些词语替换了,QDir是对文件路径的操作的一个类,操作嘛!就像数据库类似!

增删改查,更简单就是说,就是两种操作:读写;对 ‘路径’ 这个对象进行一些 读取、写入操作。

1.访问文件路径、2.访问文件路径下的文件信息、3、可以访问底层文件系统、4、访问Qt的资源系统
QDir可以创建、删除、重命名文件夹、删除文件等

Qt全都是使用 “/” (注意区别"\")作为通用目录分隔符,就像在url中使用“/”作为路径分隔符一样。一般我们在Qt上面都是使用的“/”, Windows上面一般都是使用的“\”,

我们其实不用管这些转换问题,Qt将自动转换路径以符合底层操作系统

相对路径与绝对路径

QDir可以使用相对路径或绝对路径指向文件。

绝对路径以目录分隔符(“/”)开头(在Windows下要前面加上盘符)。

相对文件名以目录名文件名开头,并指定相对于当前目录的路径。

1
2
3
4
5
6
7

//使用相对路径

QDir("./zhy/seting");


//使用绝对路径
//windows
QDir("C:/Documents/hello"); //因为Windows的路径分隔符是‘\’, 经转换的路径其实是:"C:\Documents\hello",程序拿这个路径去访问文件的
//linux
QDir("/home/user/Documents"); //Linux的路径就是"/"所以是直接使用的

相对性判断

我们可以使用以下的函数来确定这个路径的相对性,返回值当然是bool值,看一下这个函数的名字就可以猜出来,

后面的 const是说这个函数不能去、也不要去修改,其保护作用的声明。

boolisAbsolute() const
boolisRelative() const

1
2
3
4
5
6
7
8

QDir one("Users/Administrator");
QDir two("C:/Users/Administrator/Desktop");
qDebug()<<"'/Users/Administrator'  isRelative()? --"<<one.isRelative();
qDebug()<<"'C:/Users/Administrator/Desktop' isAbsolute()? --"<<two.isAbsolute();

//输出如下
'/Users/Administrator'  isRelative()?  --true
'C:/Users/Administrator/Desktop' isAbsolute()?  --true

存在性判断

在不同的操作系统下这个是会判断路径的相对性的,就算你在windows下使用Linux的绝对路径,这个isAbsolute() 返回的值还是false,

当然哈,这个函数不会去判断这个路径的真实性,就算你瞎写的只要符合规则,这都会给你返回值,判断你给的路径是否存在是用的另外一个函数

boolexists(const QString &name) const一般用于给定一个路径 name 来判断,不用再去定义一个对象来判断
boolexists() const一般是对以初始化(带参构造)QDir对象判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14

QDir one("Users/Administrator"); //瞎编的路径、不是当前程序运行的路径
QDir two("C:/Users/Administrator/Desktop");
QDir three;

qDebug()<<"'Users/Administrator' is exist? --"<<one.exists();
qDebug()<<"'C:/Users/Administrator/Desktop' is exits? --"<<two.exists();
qDebug()<<"'D:/keil' is exits? --"<<two.exists("D:/keil");      //
qDebug()<<"'D:/CloudMusic' is exits?"<<three.exists("D:/CloudMusic");

//运行结果
'Users/Administrator' is exist? -- false
'C:/Users/Administrator/Desktop' is exits? -- true
'D:/keil' is exits? -- true
'D:/CloudMusic' is exits? true

相对路径转绝对路径
boolmakeAbsolute()
把相对路径转换为绝对路径,成功则返回true否则返回false

导航和路径操作

获取和设置QDir的值

我们可以使用path()函数获取QDir对象的路径,使用setPath()函数给这个QDir对象设置新路径,说白了就是,我们可以通过上面的函数来设置QDir(“xxxx”)里面的xxxx。我们还可以使用absolutePath()获取到这个对象的绝对路径,获取到绝对路径

QStringabsolutePath() const返回这个路径,路径不存在就返回当前程序路径,最好不要用’.’ ‘…’
QStringpath() const直接返回对象的路径,
voidsetPath(const QString &path)设置指定的路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

QDir one("Users/Administrator");
QDir two("C:/Users/Administrator/Desktop");
QDir three("./");

two.setPath("./hello");     //使用setPath("")
qDebug()<<"the one's path --"<<one.path();
qDebug()<<"The Path has changed : --"<<two.path();//获取这个对象的值,
qDebug()<<"the absolutePath: "<<three.absolutePath();

//输出结果
the one's path -- "Users/Administrator"
The Path has changed : -- "./hello"
the absolutePath:  "D:/QTFiles/build-TestNoWidget-Desktop_Qt_5_12_3_MSVC2017_32bit-Debug"
   
/* 为啥需要用这两个函数?
有时候是为了获取一个对象的值,声明的时候是不带参构造的
QDir three;
//...看不见的运算
Filepath = three.path(); //这样就是得到对象的路径值了
*/

使用dirName()函数可以找到目录的名字。这通常返回绝对路径中指定目录位置的最后一个文件夹的名称。但是,如果QDir表示当前目录,它就可以返回“.”

声明用法例子结果
QString QDir::dirName() constQDir(“Documents/Letters/Applications”).dirName()// “Applications”
QDir().dirName()// “.”
切换路径

想要切换路径 可以使用 cd() 和 cdUp() 函数更改目录的路径,这两个函数的操作方式与熟悉的shell命令类似。当使用现有目录的名称调用cd()时,QDir对象将更改路径值,其内容也会改变。cdUp() 函数的作用是:更改QDir对象的路径到其父目录;也就是说 cd(“…”)等同于 cdUp()。

boolcd(const QString &dirName)切换到dirName对应的目录,改变的是这个QDir.path()的值
boolcdUp()和cd("…")一样,切换到父目录

1
2
3
4
5
6
7
8
9
10
11
12

QDir two("C:/Users/Administrator/Desktop");

qDebug()<<"切换前的路径: "<<two.path();
two.cd("D:/Altium");
qDebug()<<"切换后的路径:"<<two.path();
two.cdUp();
qDebug()<<"切换到父目录"<<two.path();

//运行结果
切换前的路径:  "C:/Users/Administrator/Desktop"
切换后的路径: "D:/Altium"
切换到父目录 "D:/"

新建删除重命名文件夹

现在终于可以 ‘写’目录了,我们可以用mkdir()创建一个子目录,用rename()重命名,用rmdir()删除目录。

返回值就是判断成功与否的,不对的情况说明传入的参数是有误的,也就是说给定的路径有问题

boolmkdir(const QString &dirName) const根据这个dirName来创建一个子目录,
boolrename(const QString &oldName, const QString &newName)给老名字一个新名字就是可以了
boolrmdir(const QString &dirName) const指定要移除的目录

1
2
3
4
5
6
7
8
9
10
11
12
13

//不管这个Dir对象声明没有,都可以做这些操作,都有这些功能,带不带参,都没有影响
QDir one;
QDir two("C:/Users/Administrator/Desktop");
QDir three("./");

qDebug()<<"Rename Hello sucessful?  "<<one.rename("Hello", "World");
qDebug()<<"mak a dir named Hello sucessful?"<<two.mkdir("../Hello");
qDebug()<<"delet the dir named '11' sucessful?"<<three.rmdir("11");

//输出结果
Rename Hello sucessful?   true
mak a dir named Hello sucessful? true
delet the dir named '11' sucessful? true

还可以并且可以使用isReadable()和isRoot()测试目录的属性。

boolisReadable() const如果目录可读并且可以按名称打开文件,则返回true;否则返回false。
boolisRoot() const如果目录是根目录,则返回true;否则返回false。Windows就是盘符,Linux就是’/’

1
2
3
4
5
6
7
8
9
10
11
12
13
14

QDir two("C:/Users/Administrator/Desktop");
QDir three("./");

two.cd("D:/Altium");
qDebug()<<"当前是根目录?  "<<two.isRoot();
two.cdUp();
qDebug()<<"当前是根目录? "<<two.isRoot();
qDebug()<<"当前目录可读?"<<two.isReadable();
two.refresh();

//运行结果
当前是根目录?   false
当前是根目录?  true
当前目录可读? true

refresh() 函数的作用是:从磁盘上重新读取目录的数据。这样更安全一点

文件和目录内容

目录下包含许多内容,里面有文件、目录符号链接(linux的术语,类似Windows下的快捷方式)。

count()函数返回目录中的条目数总数。

entryList()函数是获取目录中所有项的名称的字符串列表。

如果要得到有关每个条目的信息,请使用 entryInfoList()函数得到一个QFileInfo对象的列表。

uintQDir::count() const返回的是该目录下文件的个数,只是这个对象的子目录,这个同样可以用在 entryList().count,
QStringListentryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const不带参就返回所有的内容,这个带参使用的更好,可以通过设置参数来选择过滤项和排序功能,他有两个重载函数,
QFileInfoListentryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

返回一个以 QFileInfo对象形式存在的列表,根据先前使用 setname filters()和setFilter()设置的名称和属性筛选器排序,并根据使用setSorting()设置的标志排序。

可以使用name filters、filters和sort参数重写名称筛选器文件属性筛选器排序规范。则返回空列表。

1
2
3
4
5
6
7
8
9
10

QDir two("C:/Users/Administrator/Desktop");
two.cd("D:/Altium");
qDebug()<<"the count of two: "<<two.count();
qDebug()<<"目录下的'D:/Altium' 文件列表:"<<two.entryList();
qDebug()<<"目录下的'D:/Altium' 文件列表下的详细信息:"<<two.entryInfoList();

//运行结果
the count of two:  6
目录下的'D:/Altium' 文件列表: (".", "..", "AD18", "Documents", "新建 DOCX 文档.docx", "新建文本文档.txt")
目录下的'D:/Altium' 文件列表下的详细信息: (QFileInfo(D:\Altium\.), QFileInfo(D:\Altium\..), QFileInfo(D:\Altium\AD18), QFileInfo(D:\Altium\Documents), QFileInfo(D:\Altium\新建 DOCX 文档.docx), QFileInfo(D:\Altium\新建文本文档.txt))

过滤文件内容

真正的重点是设置这些参数,那样就可以有选择性的返回我们需要的值

我们可以应用名称过滤器来指定一个模式,该模式包含文件名需要匹配的通配符、一个属性过滤器,该属性过滤器选择条目的属性并可以区分文件、目录、以及排序顺序。

名称过滤器是传递给setNameFilters()的字符串列表。属性过滤器由按位或组合的过滤器组成,这些过滤器在调用setFilter()时指定。排序顺序是使用setSorting()和SortFlags的按位或组合指定的。

可以使用match()函数测试文件名是否与筛选器匹配。调用entryList()和entryInfoList()时,还可以指定筛选器和排序顺序标志,以便覆盖以前定义的行为。

voidsetNameFilters(const QStringList &nameFilters)这个nameFilters里面的单个成员是可以使用通配符的,那就非常的灵活的,就像这种 "snn.", ".cpp"等等,这个主要过滤文件的类型
voidsetFilter(QDir::Filters filters)这个参数是需要查表来设置的,主要来过滤一下目录下文件的属性,隐藏文件夹啊、可执行文件啊、驱动啊、是普通文件还是目录文件等等,要用 ‘|’运算来设置
voidsetSorting(QDir::SortFlags sort)看名字,顾名思义,就是过滤文件排序的属性,也是要查表的,像这些按名称、按时间、按类型、按文件大小等等也是用’|'运算来的
boolmatch(const QString &filter, const QString &fileName)

这几个函数比较重要我分开记录一下,查看附录可以去查看这些标志的意思

setNameFilters(const QStringList &nameFilters)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

//1、一种方法 这是在entryList()里面带参构造的
QDir two;
QStringList filters;
filters<<"*.cpp"<<"*.csv"<<"1.*"<<"2.*";

qDebug()<<"目录下的'D:/Altium' 文件列表:"<<two.entryList(filters);
qDebug()<<"目录下的'D:/Altium' 文件列表下的详细信息:"<<two.entryInfoList(filters);
//-------------------------------------------------------------------------------
//2、二种方法 也可以使用entryList()等函数不带参,用 setNameFilters()来完成
QDir two;
QStringList filters;
filters<<"*.cpp"<<"*.csv"<<"1.*"<<"2.*";
two.setNameFilters(filters);

qDebug()<<"目录下的'D:/Altium' 文件列表:"<<two.entryList();
qDebug()<<"目录下的'D:/Altium' 文件列表下的详细信息:"<<two.entryInfoList();

//运行结果
目录下的'D:/Altium' 文件列表: ("1.xls", "2.dd", "新建文本文档 - 副本.cpp", "新建文本文档 - 副本.csv")
目录下的'D:/Altium' 文件列表下的详细信息: (QFileInfo(D:\Altium\1.xls), QFileInfo(D:\Altium\2.dd), QFileInfo(D:\Altium\新建文本文档 - 副本.cpp), QFileInfo(D:\Altium\新建文本文档 - 副本.csv))

setFilter(QDir::Filters filters) 和 setFilter(QDir::Filters filters),因为entryInfoList和entryList()差不多,我就只用entryList()函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

//setSorting()函数,
QDir  two;
two.cd("D:/Altium");
two.setSorting(QDir::Name | QDir::Size);
qDebug()<<"目录下的'D:/Altium' 文件列表:"<<two.entryList();

//运行结果
目录下的'D:/Altium' 文件列表: ("1.xls", "2.dd", ".", "..", "AD18", "Documents", "新建 DOCX 文档.docx", "新建文本文档 - 副本.cpp", "新建文本文档 - 副本.csv", "新建文本文档.txt");

//setFilter()函数
QDir  two;
two.cd("D:/Altium");
two.setSorting(QDir::Files);    //过滤去除文件夹,只保留文件
qDebug()<<"目录下的'D:/Altium' 文件列表:"<<two.entryList();

//运行结果--不仅会去掉 ‘.’ 还会去掉 ‘..’
目录下的'D:/Altium' 文件列表: ("1.xls", "2.dd", "新建 DOCX 文档.docx", "新建文本文档 - 副本.cpp", "新建文本文档 - 副本.csv", "新建文本文档.txt")

同样的我们可以在一开始的时候就初始化好entryList()函数,可以参考一下以下的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

/*这个程序会列出当前文件夹下的所有文件、包括符号链接文件*/
#include <QDir>
#include <iostream>

  int main(int argc, char *argv[])
  {
      QCoreApplication app(argc, argv);
      QDir dir;
      dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
      dir.setSorting(QDir::Size | QDir::Reversed);

      QFileInfoList list = dir.entryInfoList();
      std::cout << "     Bytes Filename" << std::endl;
      for (int i = 0; i < list.size(); ++i) {
          QFileInfo fileInfo = list.at(i);
          std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
                                                  .arg(fileInfo.fileName()));
          std::cout << std::endl;
      }
      return 0;
  }

文件路径添加和删除

我们可以使用filePath()和absoluteFilePath()构造目录下的 文件和目录的路径。啥意思?意思就是说这些个函数啊,它们的返回值是相对于QDir对象路径的指定文件或目录的路径;

absoluteFilePath()返回指定文件或目录的绝对路径。

这些函数都不检查文件或目录的存在;它们只负责构造这样一个文件路径。这点要注意哈!

QStringfilePath(const QString &fileName) const其实只是返回的一个新的路径,有点类似字符串里的重载运算符 + ,拼接俩字符串形成一个新的字符串返回
QStringabsoluteFilePath(const QString &fileName) const和filePath()类似,只是返回的是绝对路径,上面的可以是相对路径或绝对路径
boolremove(const QString&fileName)这个和这个可以形成对比,这个是从目录中删除文件,是真的删除,可以联系到上面的删除目录是使用的 rmdir("");函数

1
2
3
4
5
6
7
8
9
10
11

QDir two("C:/Users/Administrator/Desktop");

two.cd("D:/Altium");
qDebug()<<"'D:/Altium' 下的文件构造路径"<<two.filePath("helloworld");
qDebug()<<"'D:/Altium' 下的文件构造路径"<<two.absoluteFilePath("1313/sfdf");
qDebug()<<"删除 '新建文本文档.txt' 成功?  "<<two.remove("新建文本文档.txt");

//运行结果
'D:/Altium' 下的文件构造路径 "D:/Altium/helloworld"
'D:/Altium' 下的文件构造路径 "D:/Altium/1313/sfdf"
删除 '新建文本文档.txt' 成功?   true

当前目录和其他特殊路径

当前目录

对一些常见目录的访问提供了许多静态函数,下面这些函数返回QDir对象。这些函数也有相应的函数返回字符串:

返回值是:QDir返回值是:QStringQDir的一个部分是QString
current()currentPath()返回当前的目录路径
home()homePath()返回当前用户的所在目录
root()rootPath()linux返回‘/’,windows则是返回“C:/”
temp()tempPath()返回用户的临时目录

关于这个两个的关系:QDir构造的对象是已经初始化的对象,后面是任何QDir对象都可以使用的,而且获取的值都是一样的

1
2
3
4

QDir one;

QDir::current().currentPath() 的值是等于  one.currentPath()
QDir::current() 不等于  one

特殊路径

setCurrent() 静态函数是常用于设置软件程序的工作路径的,如果你想找到这个可执行程序的路径,你可以使用这个函数 QCoreApplication::applicationDirPath(),drives()静态函数为包含文件系统的每个设备提供根目录列表。在Unix系统上,这将返回一个包含单个根目录“/”的列表;在Windows系统上,该列表通常包含C:/,可能还包含其他驱动器号,如D:/,具体取决于用户系统的配置。

boolsetCurrent(const QString &path)将应用程序的当前工作目录设置为路径。如果成功更改目录,则返回true;否则返回false
QStringQCoreApplication::applicationDirPath()注意是返回的当前运行程序的目录路径,不是Qt的安装路径,也不是这可执行文件的具体路径
QFileInfoListdrives()其实就是返回这个磁盘驱动器的,Windows返回所有的盘符,像“C: / ”,“D: /”,等等,但是在Linux是一个唯一的根目录“ / ”

1
2
3
4
5
6
7
8
9
10
11
12

QDir one;

qDebug()<<"设置路径:"<<one.setCurrent("D:/");
qDebug()<<"设置完成的路径:"<<one.path();
qDebug()<<"当前可执行文件的路径:"<<QCoreApplication::applicationDirPath();
qDebug()<<"当前系统的驱动器:"<<one.drives();

//运行结果
设置路径: true
设置完成的路径: "."
当前可执行文件的路径: "D:/QTFiles/build-TestNoWidget-Desktop_Qt_5_12_3_MSVC2017_32bit-Debug/debug"
当前系统的驱动器: (QFileInfo(C:\), QFileInfo(D:\))

路径操作和字符串

这部分我也不太明白

使用canonical path()函数,可以将包含“.”元素(在路径中的该点引用当前目录)、“…”元素(引用父目录)和符号链接的路径缩减为规范形式。
还可以通过使用cleanPath()删除多余的“/”和“…”元素来简化路径。有时需要能够在用户平台的本机表示中显示路径。

函数的作用是:返回一个指定路径的副本,在该路径中,每个目录分隔符都将替换为基础操作系统的相应分隔符。

cleanPath()返回标准化目录分隔符(转换为“/”)并删除多余分隔符的路径,并尽可能解析“.s”和“…s”。保留符号链接。此函数不返回规范路径,而是返回输入的最简单版本。例如,“./local”变为“local”,“local/./bin”变为“bin”和“/local/usr/./bin”变为“/local/bin”

附录

文件属性标志
QDir::Dirs0x001List directories that match the filters.
QDir::AllDirs0x400List all directories; i.e. don’t apply the filters to directory names.
QDir::Files0x002List files.
QDir::Drives0x004List disk drives (ignored under Unix).
QDir::NoSymLinks0x008Do not list symbolic links (ignored by operating systems that don’t support symbolic links).
QDir::NoDotAndDotDotNoDot | NoDotDotDo not list the special entries “.” and “…”.
QDir::NoDot0x2000Do not list the special entry “.”.
QDir::NoDotDot0x4000Do not list the special entry “…”.
QDir::AllEntriesDirs | Files | DrivesList directories, files, drives and symlinks (this does not list broken symlinks unless you specify System).
QDir::Readable0x010List files for which the application has read access. The Readable value needs to be combined with Dirs or Files.
QDir::Writable0x020List files for which the application has write access. The Writable value needs to be combined with Dirs or Files.
QDir::Executable0x040List files for which the application has execute access. The Executable value needs to be combined with Dirs or Files.
QDir::Modified0x080Only list files that have been modified (ignored on Unix).
QDir::Hidden0x100List hidden files (on Unix, files starting with a “.”).
QDir::System0x200List system files (on Unix, FIFOs, sockets and device files are included; on Windows, .lnk files are included)
QDir::CaseSensitive0x800The filter should be case sensitive.
文件排序标志
QDir::Name0x00Sort by name.
QDir::Time0x01Sort by time (modification time).
QDir::Size0x02Sort by file size.
QDir::Type0x80Sort by file type (extension).
QDir::Unsorted0x03Do not sort.
QDir::NoSort-1Not sorted by default.
QDir::DirsFirst0x04Put the directories first, then the files.
QDir::DirsLast0x20Put the files first, then the directories.
QDir::Reversed0x08Reverse the sort order.
QDir::IgnoreCase0x10Sort case-insensitively
QDir::LocaleAware0x40Sort items appropriately using the current locale settings.

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值