相关疑难解决方法(0)

检测传输中的文件?

我正在编写一个应用程序,通过每隔几秒轮询一次目录来监视新输入文件的目录.新文件通常可能是几兆字节,因此需要一些时间才能完全到达输入目录(例如:从远程共享复制).

有没有一种简单的方法来检测文件当前是否正在被复制?理想情况下,任何方法都是平台和文件系统无关的,但是不同的平台可能需要特定的策略.

我已经考虑将两个目录列表分开几秒钟并比较文件大小,但这引入了时间/可靠性权衡,我的上司不满意,除非别无选择.

对于后台,该应用程序被编写为一组Matlab M文件,所以没有JRE/CLR技巧我害怕...


编辑:文件通过直接移动/复制操作直接到达输入,从网络驱动器或本地文件系统上的其他位置.此复制操作可能由人类用户而不是其他应用程序启动.

因此,在文件提供程序上添加控制文件或使用中间临时区域是非常困难的...


结论:似乎没有简单的方法可以做到这一点,所以我已经选择了一种带括号的方法 - 如果出现以下情况,文件已准备好进行处理:

  • 它的大小在一定时间内不会改变,并且
  • 可以以只读模式打开文件(某些复制过程会锁定文件).

感谢大家的回复!

filesystems matlab polling

2
推荐指数
1
解决办法
1538
查看次数

标签 统计

filesystems ×1

matlab ×1

polling ×1