1.非遞歸方式spa
public static void folderMethod1(String path) { int fileNum = 0, folderNum = 0; File file = new File(path); LinkedList<File> list = new LinkedList<>(); if (file.exists()) { if (null == file.listFiles()) { return; } list.addAll(Arrays.asList(file.listFiles())); while (!list.isEmpty()) { File[] files = list.removeFirst().listFiles(); if (null == files) { continue; } for (File f : files) { if (f.isDirectory()) { System.out.println("文件夾:" + f.getAbsolutePath()); list.add(f); folderNum++; } else { System.out.println("文件:" + f.getAbsolutePath()); fileNum++; } } } } else { System.out.println("文件不存在!"); } System.out.println("文件夾數量:" + folderNum + ",文件數量:" + fileNum); }
2.遞歸方式code
public static void folderMethod2(String path) { File file = new File(path); if (file.exists()) { File[] files = file.listFiles(); if (null != files) { for (File file2 : files) { if (file2.isDirectory()) { System.out.println("文件夾:" + file2.getAbsolutePath()); folderMethod2(file2.getAbsolutePath()); } else { System.out.println("文件:" + file2.getAbsolutePath()); } } } } else { System.out.println("文件不存在!"); } }