我有一个文件夹,里面有很多不同的数据类型(xls,doc,….)。如果有一个新文件具有特定的文件扩展名(.avi)&;文件名的第一个字母以"EN_"开头,则应将文件移到另一个文件夹中。这应该连续运行,这意味着当某个文件被移动时,它会立即开始扫描具有特定属性的下一个文件(.avi&EN_)。以我目前的知识,我只会使用一个无休止的while循环。还有其他解决方案吗?你将如何解决它?
提前谢谢。
您可以尝试使用JNotify
库,它应该比while循环更高效:http://jnotify.sourceforge.net/
我从未使用过它,但我认为这个库利用了操作系统特定的功能。例如,在Linux中,您有inotify
,它允许您侦听文件系统事件。
p.S.正如在另一个线程中提到的,您应该使用Java 7新文件API来实现这一点:Jnotify如何工作
您可以编写一个使用try-catch的无限循环。尝试查找该文件,如果它不在那里,它将执行catch。
使用Java 8,您可以创建WatchService。
它将允许您监视对特定类型目录的更改。