2016-11-03 1 views
1

Ich entwickle eine Android App, ich muss eine Funktion implementieren, die eine ganze Zahl zurückgibt.Wie überprüft man, ob ein Ordner n Datei mit einem bestimmten Pfad enthält

ich einen Ordner mit verschiedenen Dateien haben, wird jede Datei von einem benutzerdefinierten Pfad so zusammen:

  • 123_part_ax0.jpg

  • 123_part_ax1.jpg

  • 123_part_ax2.jpg

  • 123_part_ax3.jpg

  • 123_part1_ax0.jpg

  • 123_part1_ax1.jpg

Ich brauche alle Datei zu zählen, die den gleichen Weg wie haben: 123_part_ax in diesem Fall count = 4.

* Lösung, die ich verwendet *

public int itemNumber(int id) { 
    int nItem = 0; 
    File dir = new File(Environment.getExternalStorageDirectory() + "/.PATH/"+id); 
    File[] listOfFiles = dir.listFiles(); 

    for (int i = 0; i < listOfFiles.length; i++) { 
     if(listOfFiles[i].getName().contains("WHAT I WHAT SEARCH")){ 
      nItem++; 
     } 
    } 
    return nItem; 
} 
+1

Zeigen Sie uns, was Sie bisher getan haben. – Abbas

+0

Was funktioniert nicht? Was ist dein aktuelles Ergebnis? Drucken Sie "dir" aus, um sicherzustellen, dass Sie in den richtigen Ordner suchen. – Knossos

+0

Ich nehme an, Sie kennen die Wege nicht im Voraus, sonst wäre die Lösung wirklich einfach. –

Antwort

3

Für eine solche Notwendigkeit, können Sie entweder File#list(FilenameFilter filter) oder File#listFiles(FilenameFilter filter) zu filtern, um den Inhalt des Ordners nach Dateinamen verwenden dann die length des resultierenden Array erhalten.

Zum Beispiel mit list(FilenameFilter):

int total = new File("/path/to/my/folder") 
    .list((dir, name) -> name.startsWith("123_part_ax")) 
    .length; 
Verwandte Themen