行业知识
【百度云盘项目实践(2)】:文件实用类工具设计
个人主页 :离芩
系列专栏:Linux实战
欢迎大家点赞评论收藏⭐文章 !!!
hello !大家好呀! 欢迎大家来到我的Linux项目实战系列之《【百度云盘项目实践(2)】:文件实用类工具设计》,在这篇文章中,你将会学习到在云盘项目中,我们怎样去管理我们的文件,我会手绘UML图来帮助大家来理解,希望能让大家更能了解网络编程技术!!!
希望这篇文章能对你有所帮助,大家要是觉得我写的不错的话,那就点点免费的小爱心吧!(注:这章对于高性能服务器的实现非常重要哟!!!)
目录
一.文件管理类设计思想
二.文件信息获取函数设计
2.1 int64_t FileSize();
2.2 time_t LastTime()和string FileName();
2.3 string FileName() ;
三.文件内容获取与修改函数设计
3.1 bool GetPosLen(std:: string *body , size_t pos ,size_t len)
3.2 bool SetContent(const std::string &body)
四.压缩与解压缩
五.目录功能函数设计
1. CreateDirectory函数
2. ScanDirectory函数
一.文件管理类设计思想
对与文件的管理,我们需要设计一个实用类来进行文件管理,其中包括文件信息的获取,修改,以及文件的压缩与解压缩,文件目录的创建,资源的访问,以及json数据序列号与反序列化的接口包装。
因此我们依据上面要求,设计出这样一个类:
这个文件管理类中的数据成员只有一个,也就是文件名,我们根据这个类中的文件名对文件进行管理,包括类的实例化,文件大小的获取,文件修改时间与最新访问时间,文件名的获取,获取指定大小区间的文件内容,设置文件内容,文件的压缩与解压缩,目录的创建与浏览。
这些函数的实现都使用了许多外接库与接口,接下来我就给大家详细解读这些函数的实现与运用吧!!!
二.文件信息获取函数设计
对于文件信息的获取,我们需要实现文件大小的获取,文件修改时间与最新访问时间,文件名的获取。
2.1 int64_t FileSize();
这是文件大小的获取函数:
int64_t FileSize(){ struct stat st;//获取文件信息接口 if(stat(_filename.c_str() , &st)