监控一个目录,如果该目录中产生新文件,在控制台显示文件信息(名字,产生时间,大小(目录除外)),并统计新文件产生总个数(Timer&TimerTask&File)
时间: 2024-04-14 11:28:12 浏览: 10
您可以使用Java中的`Timer`和`TimerTask`来实现目录监控和定时任务。以下是一个示例代码,可以监控指定目录,并在控制台显示新文件的信息和统计新文件的总个数:
```java
import java.io.File;
import java.util.Timer;
import java.util.TimerTask;
public class DirectoryMonitor {
private static int fileCount = 0;
public static void main(String[] args) {
String directoryPath = "your_directory_path";
long pollingInterval = 5000; // 监控间隔时间,单位为毫秒
TimerTask task = new TimerTask() {
@Override
public void run() {
File directory = new File(directoryPath);
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile()) {
long createTime = file.lastModified();
long size = file.length();
System.out.println("文件名: " + file.getName());
System.out.println("创建时间: " + createTime);
System.out.println("大小: " + size);
fileCount++;
}
}
}
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, 0, pollingInterval);
// 在这里可以添加其他逻辑或等待用户输入来终止程序
// 停止定时任务和监控
timer.cancel();
}
}
```
请替换代码中的`your_directory_path`为您要监控的目录路径。该代码会每隔一段时间(由`pollingInterval`定义)检查目录中的新文件,并在控制台显示文件的信息。新文件的个数会被统计在`fileCount`变量中。
请注意,在这个示例中,我们只是简单地使用定时任务来模拟目录监控。对于更复杂的需求,您可能需要使用更专业的库或工具来实现目录监控功能。