我需要创建一个windows服务,用于监视目录中新上传的文件。这些文件的大小将在100K到400K之间。
我的监控系统是否有可能注意到一个新文件,但该文件尚未完全完成复制?即它仍在流式传输,EOF尚未编写?
是的,这种情况有可能发生。您应该先将文件上传到一个临时目录,然后在文件系统中存在整个文件时将其移动到您正在监视的目录。
试着阅读这里的第二个故事和评论。从本质上讲,这就像蜥蜴比尔所说的
是。对于小文件,风险相当低,但如果你想确定,让它在看到文件时进行检查,以确保其大小在一两秒钟内保持稳定。
您正在使用FileSystemWatcher吗?我只使用过一次,但我认为您可以配置参数来告诉它您想考虑哪些事件,并为每个事件设置单独的处理程序。我怀疑FileSystemWatcher甚至可能在文件关闭之前不会通知您创建文件,但我还没有尝试过。
注意:这是.NET解决方案。如果您没有使用.NET,请忽略。