我正在尝试使用 Java 7 和 WatchService 来监视何时将文件夹添加到文件夹中(通过从不同位置复制),然后我想对新创建的文件夹中的文件进行操作。
在 OSX 上,它按我的预期工作,在复制文件夹及其内容之前,我不会收到新文件夹创建的通知。但是在 Windows 上,我在文件夹的内容被复制之前收到了关于文件夹创建的关键事件,所以当我尝试处理文件夹中的文件时,那里不存在,通常只有第一个文件在那里。
我目前的解决方法是在收到文件夹通知后,我睡了 10 秒钟以等待其中的文件被复制,但这不是很令人满意,因为文件夹的大小可能会有很大差异,所以我睡眠时间不够长或时间太长大多数时候。
为什么 OSX 和 Windows 之间存在差异,如何解决我在 Windows 上的问题?