请给出java 代码写出递归遍历找到电脑上24小时内的.java 文件
时间: 2024-10-18 17:10:30 浏览: 14
在Java中,你可以使用递归函数结合文件操作API来遍历指定目录下的所有`.java`文件,并检查它们的最后修改时间是否在24小时内。这里是一个简单的示例,假设我们有一个名为`searchFiles`的辅助方法:
```java
import java.io.File;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class Main {
private static final LocalDateTime TWENTY_FOUR_HOURS_AGO = LocalDateTime.now().minusHours(24);
private static final ZoneId DEFAULT_ZONE_ID = ZoneId.systemDefault();
public static void main(String[] args) {
File rootDirectory = new File("/path/to/search"); // 替换为你想搜索的根目录
searchFiles(rootDirectory, TWENTY_FOUR_HOURS_AGO);
}
private static void searchFiles(File directory, LocalDateTime cutoffTime) {
if (!directory.exists() || !directory.isDirectory()) {
return; // 如果不是目录,则直接返回
}
for (File file : directory.listFiles()) {
if (file.isFile() && file.getName().endsWith(".java")) {
LocalDateTime lastModified = LocalDateTime.ofInstant(file.toInstant(), DEFAULT_ZONE_ID);
if (lastModified.isAfter(cutoffTime)) {
System.out.println("Found a .java file modified within the last 24 hours: " + file.getAbsolutePath());
} else {
searchFiles(file, cutoffTime); // 对子目录递归搜索
}
}
}
}
}
```
在这个例子中,我们首先定义了一个截止时间为24小时前的时间点,然后从指定的根目录开始递归搜索。对于每个目录和文件,我们检查它是否是`.java`文件并且最近有改动。如果是,就打印出文件路径;如果不是,我们会继续对子目录进行递归搜索。
阅读全文