Dưới đây là ví dụ liệt kê tất cả file và folder trong một folder sử dụng hàm đệ quy:
import java.io.File; import java.util.Arrays; import java.util.Comparator; public class MyFiles { public static void main(String[] args) { File fileOrDir = new File("E:\\web_tut"); MyFiles myFiles = new MyFiles(); myFiles.traverseDepthFiles(fileOrDir); } public void traverseDepthFiles(final File fileOrDir) { // check xem fileOrDir la file hay foder if (fileOrDir.isDirectory()) { // in ten folder ra man hinh System.out.println(fileOrDir.getAbsolutePath()); final File[] children = fileOrDir.listFiles(); if (children == null) { return; } // sắp xếp file theo thứ tự tăng dần Arrays.sort(children, new Comparator<File>() { public int compare(final File o1, final File o2) { return o1.getName().compareTo(o2.getName()); } }); for (final File each : children) { // gọi lại hàm traverseDepthFiles() traverseDepthFiles(each); } } else { // in ten file ra man hinh System.out.println(fileOrDir.getAbsolutePath()); } } }
Output:
E:\web_tut E:\web_tut\css E:\web_tut\css\css-la-gi.txt E:\web_tut\java E:\web_tut\java\java-io E:\web_tut\java\java-io\java-io-la-gi.txt E:\web_tut\java\java-la-gi.txt