2013-11-28 66 views
1

我正在使用jnotify在新文件创建/复制到特定目录时获取事件。当文件在direcotry中被复制时,我想用这个文件作为参数执行一个工具。问题是:当文件大小很大而没有立即复制到目录中时,我无法使用此文件启动该工具,因为它仍在复制此文件。jnotify在完全创建/复制文件之前触发事件

任何建议来解决这个问题?有没有办法检查文件是否“准备就绪”?

回答

0

JNotify挂钩到文件系统事件,并获取操作系统报告的内容。 你可以做的是在激活你的动作之前,使用一个计时器来等待该文件的两秒或两秒不活动。

+0

所以没有办法让还有一个通知准备文件?我试图避免轮询,但如果这是不可能的,那么我会轮询它......谢谢 – Fulley

+0

不,没有在操作系统级准备文件(这是JNotify使用什么)这样的概念。 我建议它不会聚集,而是等待来自JNotify的最后一个写入事件,其中最后一个定义为事件之后,第二个事件中没有来自该文件的其他事件(例如) –

0

确保您的文件被打开供使用lsof的命令(的Linux/Unix),这样你就不会处理正在进行的文件(文件正在使用)

相关问题