如何判断文件已上传

本文探讨了在Linux和Windows系统中如何判断文件上传是否完成,包括通过文件大小、MD5值、文件句柄和修改时间等多种方法。重点分析了判断Modify Time与Change Time的相等性、差值以及与当前时间的差值作为依据的优缺点,以确定最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标

  • 在上传文件到linux系统时,某系统需要判断一个文件是否已经上传完成,那么用什么方法合适?

方法

判断文件大小

  • 这种方法对linux一般使用,但涉及到windows系统时,会出现问题
  • 比如windows系统和linux系统使用共享存储,因为在windows系统移动、下载文件时,windows系统会使此文件属性中的文件大小实际显示为实际大小,哪怕文件尚未传输完成

判断文件的md5值

判断整个文件的md5值
1. 发送端先计算好md5值,之后把md5值和文件一起传输过来
2. 接收端定时计算md5值,如果两次或多次计算出的结果相同,则判断已传完
  • 这种方法的弊端在于花费在计算md5的时间会偏长,而且需要开辟额外的空间去保存几次计算出的md5值
判断文件末尾几位数
1. 判断文件末尾几位数(比如100位)是否完全一致,如果几次的比较是一样的,则认为传输已完成
  • 如果传输的视频文件,又可能会出现问题,因为一个视频文件很可会存在大量空包,如果几次取值正好取到空包,也会造成判断失误

判断文件句柄

1. 通过判断文件是否被占用,如果解除了占用则视为文件已传输完成
  • 这种方法在文件上传到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值