【发布时间】:2010-09-16 00:24:33
【问题描述】:
我需要创建一个 Windows 服务来监视新上传文件的目录。 这些文件的大小约为 100K 到 400K。
是否有可能我的监控系统会注意到一个新文件,但该文件尚未完全完成复制?即它仍在流式传输且 EOF 尚未写入?
【问题讨论】:
-
请说明您希望使用的语言,因为这会改变您的问题的回答方式。
标签: file windows-services
我需要创建一个 Windows 服务来监视新上传文件的目录。 这些文件的大小约为 100K 到 400K。
是否有可能我的监控系统会注意到一个新文件,但该文件尚未完全完成复制?即它仍在流式传输且 EOF 尚未写入?
【问题讨论】:
标签: file windows-services
是的。对于小文件,风险相当低,但如果您想确定它何时看到文件以确保其大小在一两秒内保持稳定。
【讨论】:
是的,这有可能发生。您应该先将文件上传到临时目录,然后在文件系统上存在整个文件时将其移动到您正在监视的目录。
【讨论】:
尝试阅读第二个故事here 和 cmets。本质上,就像蜥蜴比尔所说的那样
【讨论】:
您使用的是FileSystemWatcher 吗?我只使用过一次,但我认为您可以配置参数来告诉它您想要考虑哪些事件并为每个事件设置单独的处理程序。我怀疑 FileSystemWatcher 可能在文件关闭之前甚至不会通知您创建文件,但我没有尝试过。
注意:这是 .NET 解决方案。如果您不使用 .NET,请忽略。
【讨论】: