qt_加密打包windows下特定的文件,发送给远程服务器

环境说明

windowns+qt.7.0MinGw

软件的构造

  • 1.按照特定的文件类型对文件进行打包
  • 2.多线程复制文件
  • 3.过滤的条件有磁盘,文件的创建时间,文件的类型,文件的大小
  • 4.加密压缩
  • 5,传输到特定的服务器

运行的实例

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

源码

#ifndef ZIPFILESEND_H
#define ZIPFILESEND_H

#include <QWidget>
#include <QFileInfo>
#include <QSettings>
#include <QDebug>
#include <QDir>
#include <QCoreApplication>
#include <QThreadPool>  // 整个电脑的磁盘扫描需要很多时间,开启多线程的方式处理
#include <QRunnable>
#include <QProcess>
#include <QDateTime>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>




class MyRun;
class ZipFileSend : public QWidget
{
   
    Q_OBJECT

public:
    ZipFileSend(QWidget *parent = 0);
    ~ZipFileSend();
    void readSet();
    void readPath(QString path);
    bool copyFile(QString src_file,QString dest_file ); //按类型
    bool copyFile2(QString src_file,QString dest_file );//按时间
    QString getDestFileName(const QString& src_file_name);
    QStringList getDisk();
    void run();
    void uploadZip();
    friend class MyRun;
private:
    //=====磁盘压缩需要的信息
    QString backup_path;
    QStringList absolute_files_name;
    QStringList accept_file_types;
    QString accept_file_time;
    QString choose_date_or_type;
    QString filter_disk;
    //=====ftp连接信息======
    QString ftp_host,ftp_port,ftp_user,ftp_passwd,ftp_path;
};

class MyRun: public QRunnable
{
   
public:
    MyRun(QString path,ZipFileSend* zip);
    ZipFileSend* zip;
protected:
    virtual void run();
private:
    QString path;
};

#endif // ZIPFILESEND_H
#include "zipfilesend.h"
#include <QCoreApplication>

MyRun::MyRun(QString path,ZipFileSend* zip)
{
   
    this->path=path;
    this->zip=zip;
    this->setAutoDelete(true);
}

void MyRun::run()
{
   
    this->zip->absolute_files_name.clear();
    this->zip->readPath(this->path);
    if(this->zip->absolute_files_name.length()==0)
        return;
    //1.1==============进行文件的复制===================
    qDebug()<<"进行文件的复制";
    foreach (QString src_file_name, this->zip->absolute_files_name) {
   
         QString dest_file_name=this->zip->getDestFileName(src_file_name);
         if(this->zip->choose_date_or_type=="time")
             this->zip->copyFile2(src_file_name,dest_file_name);
         else if(this->zip->choose_date_or_type=="type")
             this->zip->copyFile(src_file_name,dest_file_name);
         else
             continue;
    <
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值