【问题标题】:.NET FtpWebRequest: How to check if file is ready to download.NET FtpWebRequest:如何检查文件是否准备好下载
【发布时间】:2010-11-16 09:39:56
【问题描述】:

我有一个服务 .NET 使用 FtpWebRequest 从 FTP 服务器下载图像。我有一台将图像存储在同一个 FTP 服务器上的相机。

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

问题:如何检测图片是否可以下载(完全存储)?

【问题讨论】:

  • 一个肮脏的解决方法是只下载 x 分钟之前的图像。

标签: .net download ftpwebrequest


【解决方案1】:

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

但是,我怀疑您无法控制相机中的软件。在检测相机是否已完成上传时存在一些问题,尤其是在互联网连接速度较慢的情况下。

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

【讨论】:

  • @**Pieter**:你说得对,我无法控制相机软件。我将追求文件大小监视器的想法-感谢您的回答=)
【解决方案2】:

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

如果相机软件仍然打开文件,则移动应该失败,因此只有完成的图像才会从 Dir1 移动到 Dir2。

从 Dir2 下载图像。

【讨论】:

    【解决方案3】:

    在大文件之后上传另一个小文件。使用小文件检查“完整性”(或者里面的 MD5 也可以)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-17
      • 2018-03-12
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      相关资源
      最近更新 更多