QT遍历某文件夹下的参数文件名并保存在某个一个参数文件中

需求

在这里插入图片描述
如上图

某QT项目中的一个小需要:

  • 1,qrpukeky 及 waivermode文件不会变化,一直在,供第三方使用,不用写在paramlist文件中
  • 2,PRM.开头的文件每次可能会更新变化,并且文件名要写在paramlist中

代码

    // 获取指定文件夹所有的文件名
    QString path = "/mnt/sdcard/LzPca/param/";
    QString file_name = "paramlist";
    QString prename = "PRM.";

	// 遍历某文件夹,去除非PRM.开头的文件
    QDir dir(path);
    QStringList files = dir.entryList(QDir::Files|QDir::Readable, QDir::Name);
    for (int i = 0; i < files.size(); ++i)
    {
        qDebug() << files;
        QString temp = files.at(i).left(4);
        if (temp != prename){
            qDebug() << "delete1" << files.at(i);
            files.removeAt(i);
            i--;
        }
    }
    qDebug() << files;

    // 打开paramlist,清空并写入获取到的文件名
    QString filepath = path + file_name; //paramlist
    QFile file(filepath);
    if (!file.open(QIODevice::ReadWrite | QIODevice::Truncate))
    {
        qDebug() << "Cannot open paramlist for writing!" << endl;
        QMessageBox::about(NULL, "提示", "无法打开paramlist!");

        return -1;
    }else{
        qDebug() << "Success open paramlist for writing" << endl;

		//  最开头的一个字节以二进制形式保存参数文件的数量
        uchar count = files.count();

        QByteArray array;
        array.push_back(count);
        file.write(array);

        for (int i = 0; i < files.count(); ++i){
            QString name = files.at(i);
            file.write(name.toUtf8());
        }

        file.close();
    }

效果

在这里插入图片描述
查看其十六进制形式
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值