2010-11-16 60 views
4

我有一个服务.NET使用FtpWebRequest从FTP服务器下载图像。我有一台相机,它将图像存储在同一台FTP服务器上。.NET FtpWebRequest:如何检查文件是否准备好下载

如果我的服务看到图像并尝试在相机完成存储相同图像之前下载图像,图像的“尚未存储的部分”显示为灰色(损坏)。

问题:如何检测图像是否准备好下载(完全存储)?

+0

一个肮脏的解决方法是只下载大于x分钟的图像。 – Bobby 2010-11-16 09:46:50

回答

1

如果您控制了发送服务,您可以使用标记文件实现此功能。如果发送服务将例如写完一个“完成”文件后,你可以等待该文件出现。

但是,我怀疑你没有控制相机中的软件。检测摄像头是否已完成上传,特别是缓慢的互联网连接有几个问题。

我认为最好的解决方案是检查文件大小的变化。监视文件夹并查看是否显示新文件。然后,如果文件大小没有改变,例如一分钟,下载文件应该是相当安全的。

+0

@ ** Pieter **:您是对的,我无法控制相机软件。我会追求文件大小监视器的想法 - 感谢您的答案=) – Chau 2010-11-16 10:02:13

+0

不客气。 – 2010-11-16 10:27:37

0

上传大文件后的另一个小文件。使用这个小文件来检查'完整性'(或者也可能是一个内部的MD5)。

1

将相机软件存储在不同的目录中(我们称之为Dir1)。尝试将文件从这个目录移动到另一个目录(我们称之为Dir2)。

如果相机软件仍然打开文件,移动将失败,因此只有完成的图像将从Dir1移至Dir2。

从Dir2下载图像。

相关问题