当前位置: 首页 > news >正文

【lesson11】客户端backUp类的实现

文章目录

  • 成员变量
  • 成员函数
    • backUp
    • getFileIdentifier
    • isNeedUpload
    • upLoad
    • RunMoudle

成员变量

private:std::string _back_dir;//备份文件夹路径名dataManager* _data;//dataManager指针对象

成员函数

backUp

backUp(const std::string& back_dir, const std::string& back_file):_back_dir(back_dir)
{_data = new dataManager(back_file);//创建dataManager对象指针fileUtil fu(_back_dir);//如果没有_back_dir文件夹就创建它if (fu.exists() == false)fu.createDirectory();
}

getFileIdentifier

//传入文件名就可以得到getFileIdentifier返回的唯一标识
std::string getFileIdentifier(const std::string& filePath)
{fileUtil fu(filePath);if(fu.exists() == false){ std::cout << "getFileIdentifier fail not exists" << std::endl;return "";}//自己设计的唯一标识std::stringstream s;s << fu.fileName() << "-";s << std::to_string(fu.fileSize()) << "-";s << std::to_string(fu.lastModifyTime());return s.str();
}

isNeedUpload

//判断文件是否需要备份上传
bool isNeedUpload(const std::string& filePath)
{//1.获取哈希表中文件之前的唯一标识std::string old_id;bool ret = _data->getUniqueIdentifierByFilePath(filePath , &old_id);if (ret != false){//2.获取现在的唯一标识std::string new_id = getFileIdentifier(filePath);//3.判断两者是否相同,相同者表明不需要备份上传,否则就需要if (new_id == old_id)return false;}//如果文件超过设置的时间内都没有变化,则需要上传,否则不需要fileUtil fu(filePath);if (time(nullptr) - fu.lastModifyTime() <= 3){return false;}return true;
}

upLoad

bool upLoad(const std::string& filePath)
{//1.获取数据std::string body;fileUtil fu(filePath);fu.getContent(&body);//2.搭建客户端, 并发送请求httplib::Client client(SERVER_IP, SERVER_PORT);//2.1构建上传请求内容httplib::MultipartFormData item;item.name = "file";item.filename = fu.fileName();item.content = body;item.content_type = "application/octet-stream";httplib::MultipartFormDataItems items;items.push_back(item);//2.2发送请求auto ret = client.Post("/upload", items);if (!ret && ret->status != 200){return false;}return true;
}

RunMoudle

bool RunMoudle()
{while (true){//1.获取文件夹所有文件的信息fileUtil fu(_back_dir);std::vector<std::string> arry;fu.getDirectory(&arry);//2..遍历所有文件for (auto& e : arry){/*_data->insert(e, id);*///2.1判断是否需要上传,是:继续往下走,否:继续遍历下一个文件if (isNeedUpload(e) == false){continue;}std::string id = getFileIdentifier(e);if (id.empty())continue;//3.上传成功则修改备份信息if (upLoad(e) == true){_data->insert(e, id);}}Sleep(1);}
}

相关文章:

【lesson11】客户端backUp类的实现

文章目录 成员变量成员函数backUpgetFileIdentifierisNeedUploadupLoadRunMoudle 成员变量 private:std::string _back_dir;//备份文件夹路径名dataManager* _data;//dataManager指针对象成员函数 backUp backUp(const std::string& back_dir, const std::string& b…...

数据结构--关键路径

事件v1-表示整个工程开始&#xff08;源点&#xff1a;入度为0的顶点&#xff09; 事件v9-表示整个工程结束&#xff08;汇点&#xff1a;出度为0的顶点&#xff09; 关键路径&#xff1a;路径长度最长的路径 求解关键路径问题&#xff08;AOE网&#xff09; 定义四个描述量 …...

SSTI注入漏洞

SSTI注入漏洞 1.SSTI注入概述2.SSTI检测工具3.SSTI利用方法Java基本FreeMarker (Java)ThymeleafSpring Framework (Java)Spring视图操作&#xff08;Java&#xff09;Smarty (PHP)Twig (PHP)Jade (NodeJS)NUNJUCKS (NodeJS)ERB (Ruby)Jinja2 (Python)Mako (Python)ASP 1.SSTI注…...

Day11 - Day15

Day11 - Day15 Day11&#xff08;1998年Text1&#xff09; Perhaps it is humankind’s long suffering at the mercy of flood and drought that makes the idea of forcing the waters to do our bidding so fascinating. 也许正是人类长期在洪水和干旱支配下所遭受的苦难&a…...

启航信息学奥林匹克:青少年NOI学习路线与策略指南

在全球范围内&#xff0c;信息学奥林匹克竞赛&#xff08;NOI&#xff09;不仅是青少年展示编程和算法能力的舞台&#xff0c;更是未来计算机科学家和工程师的摇篮。本文将为志在参加NOI的青少年们提供一条清晰的学习路线和实用的建议&#xff0c;帮助你们在这条充满挑战与机遇…...

易舟云财务软件:数字化时代的财务管家

在数字化浪潮的推动下&#xff0c;财务软件成为了企业提升财务管理效率、实现数字化转型的关键工具。易舟云财务软件&#xff0c;正是这样一款深受企业喜爱的财务管理系统。本文将带你详细了解易舟云财务软件的特点、版本区别以及如何使用它来优化财务工作。 易舟云财务软件的特…...

catia零件装配中通过指南针移动零件

1 将零件导入进来后 2 把指南针移动到零件上 具体移动哪个可以通过模型树点击选中&#xff0c;选中那个就可以移动那个。 这种情况需要注意的是 需要双击选择要移动零件的父节点 如下图&#xff0c;Product2蓝色表示是激活的&#xff0c;这样才可以单击选中下面的零件后通过…...

如何使用免费的 Instant Data Scraper快速抓取网页数据

Instant Data Scraper 是一款非常简单易用的网页数据爬虫工具&#xff0c;你不需要任何代码知识&#xff0c;只需要点几下鼠标&#xff0c;就可以把你想要的数据下载到表格里面。以下是详细的使用步骤&#xff1a; 第一步&#xff1a;安装 Instant Data Scraper 打开谷歌浏览…...

【仿真建模-anylogic】事件之手动定时触发

Author&#xff1a;赵志乾 Date&#xff1a;2024-06-11 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 问题&#xff1a;建模过程中经常遇到需要临时规划特定逻辑执行时机的场景&#xff1b; 解决方案&#xff1a;在Event的User Control模…...

ElasticSearch学习笔记之三:Logstash数据分析

第3章 Logstash数据分析 Logstash使用管道方式进行日志的搜集处理和输出。有点类似*NIX系统的管道命令 xxx | ccc | ddd&#xff0c;xxx执行完了会执行ccc&#xff0c;然后执行ddd。 在logstash中&#xff0c;包括了三个阶段: 输入input --> 处理filter&#xff08;不是必须…...

求职力扣刷题DAY20--二叉树 part06

20 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 n…...

Error:Kotlin: Module was compiled with an incompatible version of Kotlin.

一、问题&#xff1a;运行spring boot项目时&#xff0c;idea报出错误&#xff1a;时提示报错如下图&#xff1a; 错误代码&#xff1a; Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected …...

关于flutter 启动 页面加载空白(三四秒空白页面)

一:可以在 对应的xml配置启动动画 <item><bitmapandroid:gravity"center"android:src"mipmap/ic_launcher" /></item> 二&#xff1a;以下是对应的文件目录 注意事项&#xff1a;俩处xml都配置一下&#xff0c;配置一样就可以了...

计量校准证书和检定证书区别,企业仪器校准要哪种证书好?

很多企业做校准&#xff0c;会要求校准机构出具相关证书&#xff0c;而有时候也会被机构询问&#xff0c;是要做检定还是校准&#xff0c;出具的证书是要校准证书还是检定证书&#xff1f;那么两者有什么区别呢&#xff1f; 1-检测方式不同 首先两种证书是不同检测方式所给的证…...

解析Java中1000个常用类:StackWalker类,你学会了吗?

推荐一个我自己写的小报童专栏导航网站: http://xbt100.top 收录了生财有术项目精选、AI海外赚钱、纯银的产品分析等专栏,陆续会收录更多的专栏,欢迎体验~复制URL可直达。 以下是正文。 Java 9 引入了许多新特性,其中之一是 StackWalker 类。StackWalker 提供了一种高效…...

【代码随想录算法训练Day32】LeetCode 122 买卖股票的最佳时机 II、LeetCode 55.跳跃游戏、LeetCode 45.跳跃游戏II

Day32 贪心第二天 LeetCode 122 买卖股票的最佳时机 II 思路真是无比巧妙&#xff0c;把区间利润拆成每天的利润&#xff0c;其实就是算出每天的利润&#xff0c;然后只取其中的正值即可。 在代码中计算是否计算加时还与0取最大值&#xff0c;相当于大于0才加入。 class Sol…...

Qt之QGraphicsView —— 笔记3:矩形图元连接(附完整源码)

效果 完整源码 注意:在ui文件中拖入一个QGraphicsView类窗口控件,然后用MyGraphicsView提升该类。 main.cpp #include "widget.h" #include <QApplication>int main(...

2024年,计算机相关专业还值得选择吗?

2024年&#xff0c;计算机相关专业还值得选择吗&#xff1f; 随着2024年高考落幕&#xff0c;数百万高三学生又将面临人生中的重要抉择&#xff1a;选择大学专业。在这个关键节点&#xff0c;计算机相关专业是否仍是“万金油”的选择&#xff1f;在过去很长一段时间里&#xf…...

流批一体计算引擎-10-[Flink]中的常用算子和DataStream转换

pyflink 处理 kafka数据 1 DataStream API 示例代码 从非空集合中读取数据&#xff0c;并将结果写入本地文件系统。 from pyflink.common.serialization import Encoder from pyflink.common.typeinfo import Types from pyflink.datastream import StreamExecutionEnviron…...

Java进阶_多态特性

生活中的多态 多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口&#xff0c;使用不同的实例而执行不同操作&#xff0c;如图所示&#xff1a; 现实中&#xff0c;比如我们按下 F1 键这个动作&#xff0c;同一个事件发生在不同的对象上会产生不同的结果。…...

基于AI与贝叶斯学习的开源LinkedIn自动化销售探索代理部署指南

1. 项目概述&#xff1a;一个能自己找客户的AI销售代理如果你在B2B销售、市场拓展或者创业&#xff0c;你一定对LinkedIn又爱又恨。爱的是&#xff0c;它几乎是全球最精准的B2B客户数据库&#xff1b;恨的是&#xff0c;手动寻找、筛选、联系潜在客户&#xff0c;是一个极其耗时…...

Nexus Machine架构:边缘计算中稀疏矩阵处理的革新

1. 项目概述&#xff1a;Nexus Machine架构的创新价值在边缘计算和AI推理领域&#xff0c;稀疏矩阵计算&#xff08;如SpMSpM、SpMV&#xff09;和图形处理&#xff08;如BFS、PageRank&#xff09;等不规则工作负载正面临严峻的性能瓶颈。传统CGRA&#xff08;Coarse-Grained …...

AI建站案例:一家外贸工厂如何用“AI+系统”拿下海外订单

AI建站案例&#xff1a;一家外贸工厂如何用“AI系统”拿下海外订单【引言&#xff1a;别让网站成为“电子名片”】我们看过太多外贸工厂的网站&#xff1a;花了几千块&#xff0c;做得金碧辉煌&#xff0c;但一年下来询盘屈指可数。问题不在产品&#xff0c;而在“数字化基建”…...

新手入门零门槛,Captain AI助你7天玩转Ozon

在俄罗斯跨境电商的风口下&#xff0c;Ozon平台吸引了无数新手商家入局。然而&#xff0c;流程繁琐、经验不足、语言不通三大门槛&#xff0c;让超过60%的新手在入驻前3个月就铩羽而归。据行业数据显示&#xff0c;Ozon新手商家的3个月存活率不足40%&#xff0c;其中80%的失败都…...

【ElevenLabs Creator计划终极避坑手册】:基于137份真实申请案例的数据复盘——高通过率申请者的3个共性特征

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs Creator计划全景认知与申请价值重定义 ElevenLabs Creator 计划并非传统意义上的 API 试用通道&#xff0c;而是面向内容创作者、开源贡献者与教育实践者的深度协作生态入口。其核心价值已从…...

终极图片去重神器:AntiDupl.NET帮你一键清理重复图片释放磁盘空间

终极图片去重神器&#xff1a;AntiDupl.NET帮你一键清理重复图片释放磁盘空间 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾因电脑里堆积如山的重复照片而烦…...

AI智能体技能超市:用SKILL.md标准打破AI能力壁垒

1. 项目概述&#xff1a;一个为AI智能体准备的“技能超市” 如果你和我一样&#xff0c;每天都在和各种AI编程助手打交道——Cursor、Claude Code、GitHub Copilot&#xff0c;那你肯定也遇到过这样的场景&#xff1a;想让AI帮你生成一张产品原型图&#xff0c;结果它告诉你“我…...

别只盯着YOLOv5了!从R-CNN到DETR:手把手带你看懂目标检测算法演进史(附论文精读笔记)

从R-CNN到DETR&#xff1a;目标检测算法的范式革命与技术演进 当计算机视觉领域的研究者翻开2023年的顶会论文时&#xff0c;会发现目标检测任务已经呈现出与五年前截然不同的技术图景。这个看似"古老"的计算机视觉基础任务&#xff0c;正在经历着从传统卷积到Transf…...

物联网安全认证:X.509证书的局限与替代方案实战解析

1. 项目概述&#xff1a;当X.509证书认证在IoT安全中“失灵”的深度剖析几年前&#xff0c;一份在DEFCON大会上披露的论文揭示了一个令人震惊的事实&#xff1a;互联网上存在大量未受保护的MQTT代理服务器。这些“门户大开”的代理&#xff0c;结合MQTT协议本身允许使用通配符订…...

两级宽带反馈放大器设计与优化方法

1. 两级宽带反馈放大器设计概述在当今高速通信和信号处理系统中&#xff0c;宽带放大器作为关键模拟模块&#xff0c;其性能直接影响整个系统的信号完整性。传统的手工设计方法在面对现代SoC日益复杂的性能需求时显得力不从心&#xff0c;特别是在需要同时满足增益、带宽、噪声…...