我已经实现了一个监听器,它会通知我们是否在特定目录中收到了新文件。这是通过轮询和使用 TimerTask 来实现的。现在程序已经设置好,一旦它接收到一个新文件,它就会调用另一个 java 程序来打开文件并验证它是否是正确的文件。我的问题是,由于轮询发生在指定的秒数之后,可能会出现文件被复制到该目录并因此被 Windows 锁定的情况。
这会引发 IOException,因为尝试打开它以进行验证的其他 java 程序不能(“文件正在被另一个进程使用”)。
有没有办法我可以知道 Windows 何时完成复制,然后调用第二个程序从 java 进行验证?
如果有人需要它们以提供帮助,我将非常乐意发布代码片段。
谢谢