2012-10-17 12 views
5

tworzę katalog w pamięci wewnętrznej urządzenia do przechowywania plików dla use.I aplikacji używam:Android Jak mogę sprawdzić liczbę plików w katalogu

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

Powyższy kod tworzy nowy katalog, jeśli nie istnieje lub zwraca istniejący obiekt pliku, jeśli katalog został już utworzony. To, co chcę sprawdzić, to liczba i nazwa plików, które ten katalog zawiera. Jak używać tego obiektu pliku do wykonania tego zadania.

UWAGA: Nie chcę używać zewnętrznej pamięci urządzenia. Nie mogę też uniknąć tworzenia katalogu, ponieważ pliki w katalogu muszą być oddzielone od innych plików, które nie znajdują się w katalogu.

zaktualizowany kod:

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; 
     } 
    } 

góry dzięki

Odpowiedz

8

Sprawdź metoda FilelistFiles który daje listę dzieci.

+0

Myślę, że to powinno działać ... pozwól mi spróbować – Anshul

+0

Ale jeśli sprawdzę, czy (dir.listFiles() == null) to zawsze jest y nie jest null, mimo że thr nie jest niczym w katalogu. Czy sprawdzam niewłaściwy sposób sprawdzania wartości zerowej? Pomoc – Anshul

+0

Czy możesz opublikować swój kod? – Rajesh

5

spróbować to

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

tutaj Listfiles() Zwraca wszystkie childfiles dla "dir" i iteracja to pomoże Ci uzyskać nazwy childfiles

+0

Dzięki Sharath ... twoje rozwiązanie jest poprawne – Anshul

+0

Ale jeśli sprawdzę, czy (dir.listFiles() == null) to zawsze mówi, że nie jest null, chociaż thr jest niczym w katalogu.Am Sprawdzam niewłaściwą metodę sprawdzania zerowego? Pomóż – Anshul

+0

zaktualizować swój kod –

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

prosty:

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

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

Dodaj trochę szczegółów, zamiast wyrzucać tylko kod. –

Powiązane problemy