Computer >> Máy Tính >  >> Lập trình >> Java

Chương trình Java để liệt kê tất cả các tệp trong một thư mục và thư mục con lồng nhau - Cách tiếp cận đệ quy

Để liệt kê tất cả các tệp trong một thư mục và thư mục con lồng nhau, chương trình Java như sau -

Ví dụ

import java.io.File;
public class Demo{
   static void print_recursively(File[] my_arr,int my_index,int sub_level){
      if(my_index == my_arr.length)
      return;
      for (int i = 0; i < sub_level; i++)
         System.out.print("\t");
      if(my_arr[my_index].isFile())
         System.out.println(my_arr[my_index].getName());
      else if(my_arr[my_index].isDirectory()){
         System.out.println("[" + my_arr[my_index].getName() + "]");
         print_recursively(my_arr[my_index].listFiles(), 0, sub_level + 1);
      }
      print_recursively(my_arr,++my_index, sub_level);
   }
   public static void main(String[] args){
      String path_main = "path to folder that contains files";
      File main_dir = new File(path_main);
      if(main_dir.exists() && main_dir.isDirectory()){
         File my_arr[] = main_dir.listFiles();
         System.out.println("Files listed from the main directory are : " + main_dir);
         print_recursively(my_arr,0,0);
      }
   }
}

Đầu ra

Inside the directory path, all the files of all formats from the path will be listed

Một lớp có tên Demo chứa một hàm có tên là ‘print_recursently’ lấy mảng và giá trị chỉ mục cũng như các mức lồng nhau làm tham số, đồng thời lặp qua các tệp và trả về danh sách tất cả các tệp trong thư mục cụ thể đó.

Trong chức năng chính, đường dẫn đến thư mục có tất cả các tệp được xác định và một đường dẫn tệp mới cũng được tạo. Hàm ‘listFiles’ được sử dụng để liệt kê tất cả các tệp trong thư mục cụ thể đó. Tiếp theo, hàm được gọi bằng cách chuyển các tham số này. Kết quả được hiển thị trên bảng điều khiển.