如何迭代Java目录中的文件?我需要一个目录中所有文件的列表,包括所有子目录中的文件。用Java完成目录迭代的标准方法是什么?
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
File#isDirectory()trueFile#listFiles()
public static void main(String... args) {
File[] files = new File("C:/").listFiles();
showFiles(files);}public static void showFiles(File[] files) {
for (File file : files) {
if (file.isDirectory()) {
System.out.println("Directory: " + file.getName());
showFiles(file.listFiles()); // Calls same method again.
} else {
System.out.println("File: " + file.getName());
}
}}StackOverflowError
开心每一天1111
TA贡献1836条经验 获得超13个赞
java.nio.file.Files.walkFileTree(...).
public class WalkFileTreeExample {
public static void main(String[] args) {
Path p = Paths.get("/usr");
FileVisitor<Path> fv = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException {
System.out.println(file);
return FileVisitResult.CONTINUE;
}
};
try {
Files.walkFileTree(p, fv);
} catch (IOException e) {
e.printStackTrace();
}
}}java.nio.file.Files.walk(...):
public class WalkFileTreeExample {
public static void main(String[] args) {
try (Stream<Path> paths = Files.walk(Paths.get("/usr"))) {
paths.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}}添加回答
举报
0/150
提交
取消
