qt5-QDir目录

需要    #include <QDir>

   QDir* dir=new QDir("./tu");  //创建目录对象
   /*
参数1:路径   如果为“”或零,QDir使用“.”(当前目录)

*/

   QStringList l1=dir->entryList(QDir::Files,QDir::Name);  //返回指定目录下的所有文件的文件名,不包括子目录
   //("a.jpg", "b.jpg", "c.jpg", "d.jpg", "linsi.txt")
   /*
参数1--Filter枚举变量:可选
QDir::NoFilter   默认  返回目录下的所有目录和文件
    (".", "..", "a.jpg", "b.jpg", "c.jpg", "d.jpg", "dongwu", "linsi.txt", "ziwu")
QDir::Files   返回所有文件的文件名,不包括文件夹
    ("a.jpg", "b.jpg", "c.jpg", "d.jpg", "linsi.txt")
QDir::Dirs     只返回一层目录
       (".", "..", "dongwu", "ziwu")
QDir::AllDirs    列出所有一层目录,不对目录名进行过滤
        (".", "..", "dongwu", "ziwu")
QDir::Drives    列出逻辑驱动器名称,该枚举变量在Linux/Unix中将被忽略
    ()  返回是空  不知为何   知道的请告诉我???
QDir::AllEntries   其值为Dirs | Files | Drives,列出目录、文件、驱动器及软链接等所有文件
        (".", "..", "a.jpg", "b.jpg", "c.jpg", "d.jpg", "dongwu", "linsi.txt", "ziwu")
QDir::NoSymLinks  不列出符号链接;
QDir::NoDotAndDotDot  不列出文件系统中的特殊文件.及..;
QDir::NoDot 0x2000 不列出.文件,即指向当前目录的软链接
QDir::NoDotDot0x4000 不列出..文件;


QDir::Readable    列出当前应用有读权限的文件或目录;
QDir::Writable    列出当前应用有写权限的文件或目录
QDir::Executable  列出当前应用有执行权限的文件或目录
以上的Readable、Writable及Executable均需要和Dirs或Files枚举值联合使用;

QDir::Modified   列出已被修改的文件,该值在Linux/Unix系统中将被忽略;
QDir::Hidden     列出隐藏文件;
QDir::System     列出系统文件;
QDir::CaseSensitive   设定过滤器为大小写敏感



参数2--SortFlag枚举变量   可选
这个枚举变量描述的是QDir如何排列由 entryList() 或 entryInfoList() 返回的条目
QDir::Name - 按名称排序。
QDir::Time - 按时间排序(修改时间)。
QDir::Size - 按文件大小排序。
QDir::Unsorted - 不排序。
QDir::SortByMask - Name、Time和Size的掩码。
QDir::DirsFirst - 首先是目录,然后是文件。
QDir::Reversed - 相反的排序顺序。
QDir::IgnoreCase - 不区分大小写进行排序。
QDir::DefaultSort - 内部标记。
前四种中你只能指定一个。

如果你同时指定DirsFirst和Reversed,目录仍然会被放在前面,但是按照反向的顺序,文件仍然排在目录后面,当然也是按照反向的顺序
 */

bool b=dir->exists(); //测试目录是否存在
b=dir->exists("a.jpg");//检查文件 是否存在

QString str=dir->absoluteFilePath("main.cpp"); //返回指定目录下指定文件的绝对路径
//"D:/bb/build-QDir-Desktop_Qt_5_15_0_MinGW_32_bit-Debug/tu/main.cpp"
//不检查这个文件是否真的存在于这个目录中

str=dir->dirName(); //剥离掉路径,只返回目录的名字
//"tu"

str=dir->QDir::absolutePath(); //返回绝对路径
// "D:/bb/build-QDir-Desktop_Qt_5_15_0_MinGW_32_bit-Debug/tu"

str=dir->canonicalPath();  //返回规范的绝对路径,也就是没有符号连接或者多余的“.”、“..”元素的路径
// "D:/bb/build-QDir-Desktop_Qt_5_15_0_MinGW_32_bit-Debug/tu"

//b=dir->cd("d:/");  //改变dir的目录

//b=dir->cdUp();//改变目录为dir的当前目录的上一级目录

uint n=dir->count();  //返回找到的目录和文件的数量
//包括.和..


str=dir->currentPath();  //返回应用程序当前目录的绝对路径

QDir dir1;
dir1=dir->current();  //返回应用程序当前目录

str=dir->dirName();  //返回目录的名称
//"tu"


str=dir->filePath("aa.jpg");//返回目录中一个文件的路径名称
//"./tu/aa.jpg"
//不检查这个文件是否真的存在
//如果dir是相对的,返回的路径名称也是相对的


//str=dir->canonicalPath();
   qDebug()<<b;
   qDebug()<<str;

 

QDir* dir=new QDir("./tu");  //创建目录对象
   QStringList l1=dir->entryList();
   //(".", "..", "a.jpg", "b.jpg", "c.jpg", "d.jpg", "dongwu", "linsi.txt", "ziwu")

   dir->setFilter(QDir::Dirs | QDir::NoDotAndDotDot); //设置过滤
l1=dir->entryList();
//("dongwu", "ziwu")

 

QDir* dir=new QDir("./tu");  //创建目录对象

    QFileInfoList fl = dir->entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks); //返回相应的文件信息
    //(QFileInfo(.\tu\a.jpg), QFileInfo(.\tu\b.jpg), QFileInfo(.\tu\c.jpg), QFileInfo(.\tu\d.jpg), QFileInfo(.\tu\linsi.txt))

    QFileInfoList ft = dir->entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
    //(QFileInfo(.\tu\dongwu), QFileInfo(.\tu\ziwu))

    int n=ft.size();  //返回文件信息列表中的项目总数

    QFileInfo fo=ft.at(0); //返回指定项的信息
    //QFileInfo(.\tu\dongwu)

    QString str=fo.absoluteFilePath(); //返回文件信息的绝对路径
    //"D:/bb/build-QDir-Desktop_Qt_5_15_0_MinGW_32_bit-Debug/tu/dongwu"

    fl.append(fo);  //在文件信息列表尾部添加文件信息

    fo=fl.at(0);
    str=fo.suffix();  //返回后缀名

 

QDir* dir=new QDir("./tu");  //创建目录对象

    bool b=dir->isRelative();//如果目录路径是相对于当前路径的,返回真,并且如果路径是绝对的(例如在Unix下,一个路径如果没有以“/”开始就是相对的),返回假

    b=dir->isReadable();//如果目录是可读的并且我们可以通过名称打开文件,返回真。如果只有上述一个条件存在,这个函数返回假。 警告: 这个函数返回的假并不保证这个目录不可访

    b=QDir::isRelativePath("./tu");  //如果path是相对的,返回真,如果它是绝对的,返回假

    b=dir->isRoot();//如果目录是根目录,返回真,否则返回假

    QString str=QDir::homePath(); //返回系统用户文件夹

 

QDir*dir=newQDir("./tu");//创建目录对象
QFileInfoListfl=dir->entryInfoList(QDir::Files|QDir::Hidden|QDir::NoSymLinks);//返回相应的文件信息
//(QFileInfo(.\tu\a.jpg),QFileInfo(.\tu\b.jpg),QFileInfo(.\tu\c.jpg),QFileInfo(.\tu\d.jpg),QFileInfo(.\tu\linsi.txt))
QFileInfoListft=dir->entryInfoList(QDir::Dirs|QDir::NoDotAndDotDot);
//(QFileInfo(.\tu\dongwu),QFileInfo(.\tu\ziwu))
intn=ft.size();//返回文件信息列表中的项目总数
QFileInfofo=ft.at(0);//返回指定项的信息
//QFileInfo(.\tu\dongwu)
QStringstr=fo.absoluteFilePath();//返回文件信息的绝对路径
//"D:/bb/build-QDir-Desktop_Qt_5_15_0_MinGW_32_bit-Debug/tu/dongwu"
fl.append(fo);//在文件信息列表尾部添加文件信息
fo=fl.at(0);
str=fo.suffix();//返回后缀名

 

 

 

 

posted @ 2019-08-27 09:16  天子骄龙  阅读(1716)  评论(0编辑  收藏  举报