2016-06-08 37 views
0

假设JNotify正在监听名为A的文件夹,并且将文件f从不属于A子目录一部分的文件夹B复制到了A.在什么时间点,JNotify通知。JNotify何时通知文件的创建

1)当写入新文件开始时,即在文件上调用open()以写入新文件时,它是否处于启动阶段?

OR

2)在点是它新的文件完全写入和关闭即当接近()调用写进去完成后的文件之后?

而且我不确定复制文件是否涉及写入文件。但我想它应该这样做。

我想知道在ubuntu(Linux)中的场景。任何参考非常感谢。

回答

1

JNotify不对通知传送的确切时间作出任何担保。 通常它取决于操作系统API,并且这些API也可以自己做缓冲(Windows的行为与Linux或Mac不同)。

在大多数不重要的文件创建和写入,你会得到一系列事件,而不仅仅是一个。 您可能希望在您身边有一个计时器,以获取文件事件停止的位置,以确定其可以安全操作。

+0

谢谢,你可以发布任何参考。经过几个小时的搜索后,我找不到一个。还是应该通过创建一些大文件来自己测试它? –

+0

参考什么?我知道这是因为我写了JNotify。 –

+0

哦!对不起。我没有想法。我几分钟前就核实了你的陈述。我编写了一个C++程序,它可以无限期地写入一个txt文件,但是在调用'open()'之后我会得到通知。不管怎么说,多谢拉 :) !!! –