2012-10-17 40 views
5

tôi đang tạo ra một thư mục trong bộ nhớ trong của thiết bị để lưu trữ file cho use.I ứng dụng đang sử dụng:Android Làm thế nào để kiểm tra số lượng tập tin trong một thư mục

File dir = context.getDir(userfavorites, Context.MODE_PRIVATE); 

Đoạn mã trên sẽ tạo ra một mới thư mục nếu nó không tồn tại hoặc trả về cho tôi đối tượng tập tin hiện có nếu thư mục đã được tạo ra. Những gì tôi muốn kiểm tra là số lượng và tên của tập tin thư mục này chứa. Làm thế nào để sử dụng đối tượng tập tin này để thực hiện nhiệm vụ này.

GHI CHÚ: Tôi không muốn sử dụng bộ nhớ ngoài của thiết bị. Và tôi cũng không thể tránh việc tạo thư mục vì các tệp trong thư mục phải được tách khỏi các tệp khác không có trong thư mục.

CẬP NHẬT Mã sản phẩm:

private static boolean IsFoldercontainsFiles(Context context) { 
     // TODO Auto-generated method stub 
     File dir = context.getDir(USER_FAV, Context.MODE_PRIVATE); 
     if (dir.exists()) { 
        if (dir.listFiles() == null){ 
        return false;} //it never execute this line even though its null 
        else{ 
      File childfile[] = dir.listFiles(); 
      Log.i("file no is ", Integer.toString(childfile.length)); 
      if (childfile.length == 0) { 
       return false; 
      } else { 
       return true; 
      } 
       } 
     } else { 
      return false; 
     } 
    } 

Cảm ơn trước

Trả lời

8

Kiểm tra listFiles phương pháp File rằng sẽ cung cấp cho bạn danh sách các trẻ em.

+0

Tôi đoán điều này sẽ hoạt động ... hãy để tôi thử – Anshul

+0

Nhưng nếu tôi kiểm tra xem (dir.listFiles() == null) thì nó luôn là y của nó không null mặc dù Thr là không có gì trong thư mục. Tôi kiểm tra sai cách để kiểm tra null? Xin vui lòng giúp – Anshul

+0

Bạn có thể gửi mã của bạn? – Rajesh

5

thử này

File childfile[] = dir .listFiles(); 
for (File file2 : childfile) { 
    Log.v("file name is ", file2.getName()); 
} 

đây listFiles() trả lại tất cả các childfiles cho "dir" và lặp lại điều này sẽ giúp bạn để có được tên của các childfiles

+0

Cảm ơn Sharath ... giải pháp của bạn là chính xác – Anshul

+0

Nhưng nếu tôi kiểm tra nếu (dir.listFiles() == null) thì nó luôn luôn nói rằng nó không null mặc dù thr là không có gì trong thư mục. Tôi kiểm tra sai cách để kiểm tra null? Vui lòng giúp – Anshul

+0

bạn có thể cập nhật mã của mình –

7
File file=new File("/mnt/sdcard/yourfolder"); 
     File[] list = file.listFiles(); 
     int count = 0; 
     for (File f: list){ 
      String name = f.getName(); 
      if (name.endsWith(".jpg") || name.endsWith(".mp3") || name.endsWith(".some media extention")) 
       count++; 
      System.out.println("170 " + count); 
     } 
-1

đơn giản:

File dir = new File(path); // "/mnt/sdcard/yourfolder" 

long totalNumFiles = dir.listFiles().length; 
+2

Thêm một số chi tiết thay vì chỉ bán phá giá mã. –

Các vấn đề liên quan