文章目录
目标
- 在上传文件到linux系统时,某系统需要判断一个文件是否已经上传完成,那么用什么方法合适?
方法
判断文件大小
- 这种方法对linux一般使用,但涉及到windows系统时,会出现问题
- 比如windows系统和linux系统使用共享存储,因为在windows系统移动、下载文件时,windows系统会使此文件属性中的文件大小实际显示为实际大小,哪怕文件尚未传输完成
判断文件的md5值
判断整个文件的md5值
1. 发送端先计算好md5值,之后把md5值和文件一起传输过来
2. 接收端定时计算md5值,如果两次或多次计算出的结果相同,则判断已传完
- 这种方法的弊端在于花费在计算md5的时间会偏长,而且需要开辟额外的空间去保存几次计算出的md5值
判断文件末尾几位数
1. 判断文件末尾几位数(比如100位)是否完全一致,如果几次的比较是一样的,则认为传输已完成
- 如果传输的视频文件,又可能会出现问题,因为一个视频文件很可会存在大量空包,如果几次取值正好取到空包,也会造成判断失误
判断文件句柄
1. 通过判断文件是否被占用,如果解除了占用则视为文件已传输完成
- 这种方法在文件上传到