下面是“Java递归遍历文件目录代码实例”的完整攻略。
目录
- 简介
- 代码实现
- 示例说明
- 示例一
- 示例二
简介
在Java中如何递归地遍历文件目录呢?Java提供了File类,可以很方便地对文件和目录进行操作。我们可以通过File类的listFiles()方法获取当前目录下的所有文件和目录,然后递归地遍历每一个目录。
代码实现
下面是Java递归遍历文件目录的代码实现:
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
File root = new File("D:/music");
traverse(root);
}
public static void traverse(File file) {
if (file.isDirectory()) {
File[] files = file.listFiles();
if (files != null) {
for (File f : files) {
traverse(f);
}
}
} else {
System.out.println(file.getAbsolutePath());
}
}
}
上面的代码中,我们首先定义了一个根目录D:/music
。然后调用traverse()
方法进行遍历。遍历的过程中,如果当前文件是目录,就递归遍历其中的所有文件和子目录;如果当前文件是文件,就输出它的绝对路径。
示例说明
下面通过两个示例进一步说明Java递归遍历文件目录的使用方法。
示例一
假设我们要打印D:/music
目录下的所有文件和子目录的路径。我们可以使用以下代码:
import java.io.File;
import java.util.Arrays;
public class FileDemo {
public static void main(String[] args) {
File root = new File("D:/music");
traverse(root);
}
public static void traverse(File file) {
if (file.isDirectory()) {
System.out.println(file.getAbsolutePath());
File[] files = file.listFiles();
if (files != null) {
Arrays.sort(files); // 对文件名进行排序
for (File f : files) {
traverse(f);
}
}
} else {
System.out.println("\t" + file.getAbsolutePath());
}
}
}
上面的代码中,我们对输出进行了一些调整。如果当前文件是目录,就输出它的路径;如果当前文件是文件,就在文件名前面加一个制表符,使得文件名和父目录的路径对齐。为了保证输出的文件名按照字母顺序排序,我们使用了Arrays.sort()
方法对文件数组进行排序。
示例二
假设我们要统计D:/music
目录下所有音频文件的大小,我们可以使用以下代码:
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
File root = new File("D:/music");
long totalSize = calculateSize(root);
System.out.println("Total audio file size: " + totalSize + " bytes");
}
public static long calculateSize(File file) {
long size = 0L;
if (file.isDirectory()) {
File[] files = file.listFiles();
if (files != null) {
for (File f : files) {
size += calculateSize(f);
}
}
} else {
String name = file.getName();
if (name.endsWith(".mp3") || name.endsWith(".wav")) {
size = file.length();
}
}
return size;
}
}
我们遍历目录,如果当前文件是目录,就递归遍历其中的所有文件和子目录;如果当前文件是文件,就判断它的文件名是否以.mp3
或者.wav
结尾,如果是就累加该文件的大小。最终返回总的文件大小。
这就是Java递归遍历文件目录的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java递归遍历文件目录代码实例 - Python技术站