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();//返回后缀名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)