医疗行业企业网站建设,石家庄市建设南大街小学网站,深圳宝安网站建设工,专业网页制作哪家好33. 客户端数据管理模块实现-数据信息设计
客户端要实现的功能是对指定文件夹中的文件自动进行备份上传。但是并不是所有的文件每次都需要上传#xff0c;我们需要能够判断#xff0c;哪些文件需要上传#xff0c;哪些不需要#xff0c;因此需要将备份的文件信息给管理起来…33. 客户端数据管理模块实现-数据信息设计
客户端要实现的功能是对指定文件夹中的文件自动进行备份上传。但是并不是所有的文件每次都需要上传我们需要能够判断哪些文件需要上传哪些不需要因此需要将备份的文件信息给管理起来作为下一次文件是否需要备份的判断。因此需要被管理的信息包含以下
文件路径名称文件唯一标识由文件名最后一次修改时间文件大小组成的一串信息
34. 客户端文件检测模块实现-文件操作实用类设计
这个其实与服务端的文件实用工具类雷同只是功能需求并没有服务端那么多复制过来即可。
namespace fs std::experimental::filesystem;
class FileUtil {private:std::string _name;public:FileUtil(const std::string name) :_name(name) {}size_t FileSize();time_t LastATime();time_t LastMTime();std::string FileName();bool GetPosLen(std::string *content, size_t pos, size_t len);bool GetContent(std::string *content);bool SetContent(const std::string content);bool Exists();bool CreateDirectory();bool ScanDirectory(std::vectorstd::string *arry);
};35. 客户端数据管理模块实现-数据管理类设计
class DataManager{private:std::unordered_mapstd::string, std::string _table;std::string _back_file;public:DataManager(const std::string back_file);bool InitLoad();//程序运行时加载以前的数据bool Storage();//持久化存储bool Insert(const std::string key, const std::string val);bool Update(const std::string key, const std::string val);bool GetOneByKey(const std::string key, std::string *val);
};36. 客户端文件备份模块实现-文件备份类设计
#define SRV_IP 192.168.X.X
#define SRV_PORT 9000
class BackUp {private:DataManager *_data;std::string _back_dir;std::string _back_file;public:BackUp(const std::string back_dir, const std::string back_file): _back_dir(back_dir), _back_file(back_file){}std::string GetFileIdentifier(const std::string filename);bool Upload(const std::string filename)bool IsCanBeUpload(const std::string filename);bool RunModule();};