使用Java实现以下功能: 递归遍历目录,显示其中的文件名和目录名。若为文件,则直接显示文件的大小;若为目录,则显示目录中的文件和子目录。注意显示文件大小的单位(KB或MB)。
时间: 2024-10-23 10:12:10 浏览: 38
在Java中,你可以使用`java.io.File`类和`java.nio.file.Files`类来实现递归遍历目录的功能。以下是一个简单的示例,它会打印出文件名、文件大小(以KB为单位)以及是否是目录:
```java
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
public class DirectoryTraversal {
private static void listFilesRecursively(File directory) {
if (directory.isDirectory()) {
System.out.println("Directory: " + directory.getName());
for (File child : directory.listFiles()) {
listFilesRecursively(child);
}
} else {
try {
long size = Files.size(directory.toPath()) / 1024; // Convert bytes to KB
String fileSize = size + " KB";
System.out.println("File: " + directory.getName() + ", Size: " + fileSize);
} catch (IOException e) {
System.out.println("Error accessing file: " + directory.getName());
}
}
}
public static void main(String[] args) {
File dir = new File("/path/to/directory"); // 替换为你想要遍历的实际目录路径
if (dir.exists()) {
listFilesRecursively(dir);
} else {
System.out.println("Directory not found.");
}
}
}
```
在这个程序中,我们首先检查给定的是不是目录,如果是,我们就递归地遍历它的子目录。如果是文件,我们会计算其大小并显示。如果在访问文件时发生错误,我们会捕获异常并通知用户。
阅读全文