我正在编写一个应用程序,通过每隔几秒轮询一次目录来监视新输入文件的目录.新文件通常可能是几兆字节,因此需要一些时间才能完全到达输入目录(例如:从远程共享复制).
有没有一种简单的方法来检测文件当前是否正在被复制?理想情况下,任何方法都是平台和文件系统无关的,但是不同的平台可能需要特定的策略.
我已经考虑将两个目录列表分开几秒钟并比较文件大小,但这引入了时间/可靠性权衡,我的上司不满意,除非别无选择.
对于后台,该应用程序被编写为一组Matlab M文件,所以没有JRE/CLR技巧我害怕...
编辑:文件通过直接移动/复制操作直接到达输入,从网络驱动器或本地文件系统上的其他位置.此复制操作可能由人类用户而不是其他应用程序启动.
因此,在文件提供程序上添加控制文件或使用中间临时区域是非常困难的...
结论:似乎没有简单的方法可以做到这一点,所以我已经选择了一种带括号的方法 - 如果出现以下情况,文件已准备好进行处理:
感谢大家的回复!