我的应用程序监视着一组用户可以在其中上传文件的文件夹。文件上传完成后,我必须进行处理,但是我不知道如何检测文件尚未完成上传。有什么方法可以检测FTP服务器是否尚未释放文件?
3 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
我使用ftputil实现此替代方法:
连接到ftp服务器
列出目录中的所有文件
在每个文件上调用stat()
等待N秒
对于每个文件:再次调用stat()。如果结果不同,请跳过此文件,因为它是在最近几秒钟内修改的。
如果stat()结果相同,则下载文件。
整个ftp获取是古老而过时的技术。我希望客户下次可以使用现代的http API :-)
繁星淼淼
TA贡献1775条经验 获得超11个赞
这是FTP传输的经典问题。我发现的唯一最可靠的方法是发送文件,然后发送第二个简短的“标记”文件,只是告诉接收者第一个文件的传输已完成。您可以使用文件命名约定,仅检查第二个文件是否存在。
您可能会很喜欢,然后将第二个文件的内容作为第一个文件的校验和。然后,您可以验证第一个文件。(第二个文件没有问题,因为您只等到文件大小=校验和大小)。
当然,这只有在您可以使发送者发送第二个文件的情况下才有效。
- 3 回答
- 0 关注
- 959 浏览
添加回答
举报
0/150
提交
取消