【发布时间】:2015-07-07 09:31:58
【问题描述】:
我正在用 java 编写一个程序,我想知道是否有办法重复检查文件夹中的任何新文件(每 30 秒左右)并将任何新文件移动到另一个文件夹。
我已经有了移动文件的工作代码,但是在检查文件夹中是否有新文件时找不到任何东西。
【问题讨论】:
我正在用 java 编写一个程序,我想知道是否有办法重复检查文件夹中的任何新文件(每 30 秒左右)并将任何新文件移动到另一个文件夹。
我已经有了移动文件的工作代码,但是在检查文件夹中是否有新文件时找不到任何东西。
【问题讨论】:
您可以查看java.nio.file.WatchService,而不是使用重复计时器,它可以让您在添加、修改或删除目录中的文件时收到通知。
【讨论】:
我建议你使用Timer。
Timer timer = new Timer();
List<String> list = new List();
//repeat your timer
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//loop through the folder and get the names
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
if(list.contains(listOfFiles[i].getName())
{
//already checked file
}
else
{
//new file add your move logic and add it to the list
list.add(listOfFiles[i].getName());
}
}
}
}
}, 2*60*1000, 2*60*1000);
【讨论】: