QT学习_QT远程文件升级

Posted Leslie X徐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT学习_QT远程文件升级相关的知识,希望对你有一定的参考价值。

QT文档升级

首先写配置文件:

[update]
filename = "D:\\\\lesliex\\\\QTpro\\\\UpdatePro\\\\testupdatefile\\\\file";
checkname = "file";

代码

选择已更新的文件夹

void MainWindow::on_pushButton_clicked()
{
   updateDir = QFileDialog::getExistingDirectory(this,"select Dir",QDir::currentPath());
    
   ui->plainTextEdit->appendPlainText("ready update...");
}

进行升级

void MainWindow::on_pushButton_2_clicked()
{
    //读取配置文件
    QSettings setting("..\\\\setting.ini",QSettings::IniFormat,this);
    QString readyupdateDir = setting.value("/update/filename").toString();
    QString checkName = setting.value("/update/checkname").toString();
	
    //进行升级
    QFileInfo fileInfo(readyupdateDir);
    if(fileInfo.isDir()){
        if(fileInfo.fileName() == checkName){
            ui->plainTextEdit->appendPlainText("copying...");
            copyToDir(updateDir,readyupdateDir);
            ui->plainTextEdit->appendPlainText("update success!");
        }
        else
        ui->plainTextEdit->appendPlainText("update error!");
    }else
        ui->plainTextEdit->appendPlainText("update error!");

}

文件夹覆盖操作

void MainWindow::copyToDir(QString FromDir, QString ToDir)
{
    //获取两个文件夹
    QDir sourceDir(FromDir);
    QDir targetDir(ToDir);

    //若目标文件不存在则创建
    if(!targetDir.exists()) targetDir.mkdir(targetDir.absolutePath());

    //获取源文件夹中文件信息
    QFileInfoList sourceFileInfos = sourceDir.entryInfoList();

    //逐个判别文件采取对应策略,注意QFileInfo类fileName和filePath的区别
    for(auto i : sourceFileInfos){
        //跳过"."".."文件
        if(i.fileName()=="." || i.fileName()=="..") continue;
        //如果是文件夹,则递归
        else if(i.isDir()){
            copyToDir(i.filePath(),targetDir.filePath(i.fileName()));
        }
        //如果是文件,如果文件存在则先删除,再复制
        else if(i.isFile()){
            if(targetDir.exists(i.fileName()))targetDir.remove(i.fileName());
            QFile::copy(i.filePath(),targetDir.filePath(i.fileName()));
        }
    }
}

后续可扩展:解压缩包升级,网络远程升级

以上是关于QT学习_QT远程文件升级的主要内容,如果未能解决你的问题,请参考以下文章

QT学习记录QT基本功能

43.QT-访问远程SQLite数据库

QT学习_QT解析Json格式文件

QT学习_QT压缩文件ZIP编译

Qt学习

Qt学习之路1---软件下载安装及工程简介