yongjava编写一个程序递归遍历目录,显示其中的文件名和目录名。若为文件,则直接显示文件的大小;若为目录,则显示目录中的文件和子目录。注意显示文件大小的单位(KB或MB)。
时间: 2024-10-25 17:18:34 浏览: 24
在YongJava(假设这指的是Spring Boot或类似框架下的Java)中,你可以使用`java.nio.file`包来实现递归遍历目录并显示文件信息。以下是一个示例程序:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class DirectoryTraversal {
public static void main(String[] args) {
String directoryPath = "/path/to/directory"; // 替换为你想遍历的目录
traverseDirectory(directoryPath);
}
private static void traverseDirectory(String path) {
try {
Files.walk(Paths.get(path))
.forEach(file -> {
if (Files.isDirectory(file)) {
System.out.println("目录:" + file.toAbsolutePath() + " - 文件和子目录将在此处显示");
// 如果你想进一步遍历子目录,可以递归调用traverseDirectory(file.toPath());
} else {
long fileSize = Files.size(file);
double sizeInKb = fileSize / 1024.0; // 单位为KB
if (sizeInKb >= 1) {
System.out.printf("文件:%s, 大小:%d MB%n", file.toAbsolutePath(), (int)sizeInKb);
} else {
System.out.printf("文件:%s, 大小:%d KB%n", file.toAbsolutePath(), (int)sizeInKb);
}
}
});
} catch (IOException e) {
System.err.println("遇到异常: " + e.getMessage());
}
}
}
```
在这个程序里,`Files.walk()`方法会遍历指定路径下的所有文件和子目录。对于每个找到的元素,如果是目录就打印出来,如果是文件则计算其大小并以KB或MB为单位展示。
阅读全文