如何迭代Java目录中的文件?我需要一个目录中所有文件的列表,包括所有子目录中的文件。用Java完成目录迭代的标准方法是什么?
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
File#isDirectory()
true
File#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
提交
取消