代码之家  ›  专栏  ›  技术社区  ›  Chau

.NET FtpWebRequest:如何检查文件是否已准备好下载

  •  4
  • Chau  · 技术社区  · 14 年前

    我有服务 .NET版本 使用 FtpWebRequest公司 从FTP服务器下载图像。我有一个摄像头,可以在同一个FTP服务器上存储图像。

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

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

    3 回复  |  直到 14 年前
        1
  •  1
  •   Pieter van Ginkel    14 年前

    如果您可以控制发送服务,则可以使用标记文件实现此功能。如果发送服务完成后会写入“.finished”文件,则可以等待该文件出现。

    但是,我怀疑你不能控制摄像机里的软件。在检测相机是否已完成上传时存在一些问题,特别是在网速较慢的情况下。

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

        2
  •  1
  •   qbeuek    14 年前

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

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

    从Dir2下载图像。

        3
  •  0
  •   leppie    14 年前

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