博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt学习之路_8(Qt中与文件目录相关操作)
阅读量:6899 次
发布时间:2019-06-27

本文共 3266 字,大约阅读时间需要 10 分钟。

    一、与文件目录操作有关操作。

         Qt中与文件目录相关的操作在QDir中,需加入#include <QDir>语句。

         QDir::drives()是列出电脑根目录下的所有目录,返回的是QFileInfoList。利用其返回的QFileInfo,可以使用QFileInfo::absoluteFilePath()方法为返回其绝对路径。

    Bool QDir::exists ( const QString & name ) 是判断以参数中为路径名的路径是否存在,如果存在该路径则返回真。

    bool QDir::mkpath ( const QString & dirPath ) ,该函数是创建以dirPath为路径的一个路径,如果父路径不存在的话,则一起同时创建;创建成功返回1,否则返回0.

    QFileInfoList QDir::entryInfoList为列出其路径下的所有文件和。目录信息

    bool QFileInfo::isDir是判断其是否为目录,同理。

      bool QFileInfo::isFile是判断其是否为文件。

      

       其中列出根目录和创建目录文件终端输出如下:

   

      

       查询指定目录下的文件和文件夹的后台输出如下:

  

      

本次实验的代码和注释如下:

#include 
#include
#include
#include
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); // QDir my_dir("C:\\QtTest"); QDir my_dir; // my_dir.absolutePath(); //foreach是Qt中对c++中增加的关键字,foreach (variable, container) //其意思是访问遍历第2个参数容器中的所有内容,每次都存入第1个参数变量中 //QDir::drives()是列出电脑根目录下的所有目录,返回的是QFileInfoList foreach(QFileInfo my_info, my_dir.drives()) { //QFileInfo::absoluteFilePath为返回绝对路径,包括名字 qDebug() << my_info.absoluteFilePath(); } // qDebug() << my_dir.exists(); QString mkdir = "C:/QtTest/zzz"; //如果指定的路径不存在时 if(!my_dir.exists(mkdir)) { //给my_dir创建一个路径 my_dir.mkpath(mkdir); qDebug() << "Created successed!"; } //指定的路径存在时 else { qDebug() << "Alreadly exists!"; } QDir my_dir1("C:/"); //QFileInfoList QDir::entryInfoList为列出其路径下的所有文件和 //目录信息。bool QFileInfo::isDir是判断其是否为目录,同理 //bool QFileInfo::isFile是判断其是否为文件 foreach(QFileInfo my_info, my_dir1.entryInfoList()) { if(my_info.isDir()) qDebug()<< "Dir: "<

 

 

  二、与文件读取操作相关。

    对文件的操作最常见的就是文件的读取了,传入一个文件名,要向其中写入数据或者读取数据。QFile类中可以完成于文件操作相关的很多内容。另外还有一个文件读取和写入的辅助的类,即QTextStream。有点类似标准C++中的cout,cin等操作,不过这里的对象是Qt,不是终端。

    下面的代码完成向一个文件中写入数据然后又向该文件中读出写入的数据这一功能。且在资源文件中把本工程的工程文件加入其中并且读出来了.

  其效果如下:

  

 

代码和注释如下:

 

#include 
#include
#include
#include
#include
void write(QString file_name){ //以传入的文件名建立一个文件,传入的文件名包含有目录信息在里面 QFile file(file_name); //以只写和文本的方式打开该文件 if(!file.open(QFile::WriteOnly | QFile::Text)) { qDebug () << "Could not open the file by reading"; return; } //out其实是一个缓冲区 QTextStream out(&file); //输出内容到缓冲区 out << "hell world!"; file.flush();//将缓冲区的内容输出的文本 file.close();//关闭文件} void read(QString file_name){ QFile file(file_name); //以只读和文本的方式打开该文件 if(!file.open(QFile::ReadOnly | QFile::Text)) { qDebug () << "Could not open the file by reading"; return; } QTextStream in(&file); QString text; //in >> text;//如果是用这句的话则只是独到了1句而已,即内容hello text = in.readAll();//这也写可以全部读完 qDebug () << text; file.close();//关闭文件 } int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QString file_name = "C:/QtTest/file.txt"; write(file_name); // read(file_name); //该句表示从资源文件中读取内容。因为一开始我已经在资源文件中 //添加了qfile.pro文件。read(":/MyFiles/qfile.pro");}

 

 

  总结:通过这次简单的实验,发现Qt中对文件的操作还是蛮方便的,有很多函数可以用。

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/tornadomeet/archive/2012/07/31/2616180.html

你可能感兴趣的文章
CSS3 圆角(border-radius)
查看>>
最大子数组
查看>>
用telnet命令,POP3接收邮件
查看>>
Nginx 关于 location 的匹配规则详解
查看>>
OutputStream、InputStream 、FileOutputStream、FileInputStream,字节流API
查看>>
10. Python面向对象
查看>>
python3与 python2 urllib模块区别
查看>>
关于props 和state
查看>>
跟我学算法-tensorflow 实现线性拟合
查看>>
redis使用管道pipeline提升批量操作性能(php演示)
查看>>
python: file_handling 解决工作中出现的文件处理需求
查看>>
HTML5 拖放(Drag 和 Drop)功能开发——浅谈dataTransfer对象
查看>>
灰度图像亮度对比度调整的简单代码
查看>>
shell测试题上机实验
查看>>
[转]二维数组和二级指针的传递问题
查看>>
nginx+fastcgi+c/c++搭建高性能Web框架
查看>>
[转载]安装archlinux 以后没有 ifconfig,route ,nslo
查看>>
人见人爱A^B
查看>>
zoj 3795 Grouping tarjan缩点 + DGA上的最长路
查看>>
浏览器内核
查看>>