2020-8-19 Qt文件管理

Qt文件管理

1.Qt的文件管理涉及到的头文件

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDir>//qt文件系统相关头文件
#include <QFileInfo>
#include <QDebug>//屏幕打印
#include <QFile>//文件操作
namespace Ui {
   
   
class MainWindow;
}

class MainWindow : public QMainWindow
{
   
   
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

main.cpp


#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
   
   
    QApplication a(argc, argv);
    QDir mDir("E:\\github\\Qt");//创建一个对象 判断该文件夹是否存在
    qDebug()<<mDir.exists();
    MainWindow w;
    w.show();

    return a.exec();
}

在这里插入图片描述
2.自动生成文件夹

QDir mDir("E:\\qt_code\\2020-8-19_File\\abc");//创建一个对象 判断该文件夹是否存在
    qDebug()<<mDir.exists();

    if (!mDir.exists())
    {
   
   
        qDebug()<<"create New";
        mDir.mkdir("E:\\qt_code\\2020-8-19_File\\abc");
    }
    else {
   
   
        qDebug()<<"already exist!";
    }

3.查询文件路径

	qDebug()<<mDir.current();
    qDebug()<<mDir.currentPath();//qt exe程序运行启动目录的上一级
    qDebug()<<mDir.homePath();
    qDebug()<<mDir.rootPath();
    qDebug()<<mDir.dirName();//文件夹名称
    qDebug()<<mDir.absolutePath();//这个比较有使用价值,绝对路径

4.遍历文件下的文件(和文件夹)

 QDir mDir2("E:\\qt_code\\2020-8-19_File");
    foreach(QFileInfo mItem,mDir2.entryInfoList())
    {
   
   
        if(mItem.isDir())
            qDebug()<<"Dir"<<mItem.filePath();
        else if(mItem.isFile())
            qDebug()<<"File"<<mItem.filePath();
    }

5.筛选匹配

//名称适配
    QDir mDir3("E:\\qt_code\\2020-8-19_File");
    QStringList filters;//创建一个字符串链表
    filters<<"*.cpp"<<"*.png"<<"*.pro";
    mDir3.setNameFilters(filters);
    qDebug()<<mDir3.entryList(filters,QDir::Files);

在这里插入图片描述

6.打开方式
在这里插入图片描述
7.新建文件

QFile file("testfile.txt");//先指定一个文件名
if (!file.open(QIODevice::ReadWrite|QIODevice::Text))//通过open操作创建或打开一个文件
    //注意QIODevice::Text字段的使用\r\n是隔开一行,\n是不隔开直接转下一行
{
   
   
    qDebug()<<file.errorString();
    return -1;
}
else {
   
   
    qDebug()<<"open success!";
}
file.write("hello!\nThis is a test!");
file.close();

QFile file2("testfile2.txt");//测试,仅仅这样就没有建立文件

8.文件读取

//读取文件----
    if (!file.open(QIODevice::ReadWrite|QIODevice::Text))//通过open操作创建或打开一个文件
        //注意QIODevice::Text字段的使用\r\n是隔开一行,\n是不隔开直接转下一行
    {
   
   
        qDebug()<<file.errorString();
        return -1;
    }
    else {
   
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值