java1 递归遍历目录,显示其中的文件名和目录名。若为文件,则直接显示文件的大小;若为目录,则显示目录中的文件和子目录。注意显示文件大小的单位(KB或MB)。
时间: 2024-10-23 16:07:09 浏览: 16
在Java中,你可以使用`java.io.File`类及其提供的方法来递归地遍历目录并获取文件信息。以下是一个简单的示例,它会打印出文件名、大小(以KB为单位)以及是否是目录:
```java
import java.io.File;
import java.io.IOException;
public class DirectoryTraversal {
private static final int KB = 1024;
public static void main(String[] args) {
File directory = new File("/path/to/directory"); // 替换为你想要遍历的目录路径
if (!directory.exists() || !directory.isDirectory()) {
System.out.println("指定的不是一个有效的目录!");
return;
}
traverseDirectory(directory);
}
private static void traverseDirectory(File dir) {
for (File file : dir.listFiles()) {
if (file.isFile()) { // 如果是文件
long size = file.length();
String fileSize = (size < KB) ? String.format("%.2f KB", size / KB) : String.format("%.2f MB", size / KB / KB);
System.out.printf("%s - %s%n", file.getName(), fileSize);
} else if (file.isDirectory()) { // 如果是目录
System.out.println(file.getName() + " (目录)");
traverseDirectory(file); // 递归遍历子目录
}
}
}
}
```
在这个例子中,`listFiles()`方法返回一个包含当前目录下所有文件和子目录的数组。然后我们检查每个元素是文件还是目录,并相应地处理它们。
阅读全文