2012-03-29 5 views
0

Ich möchte ein Array bestimmter Dateitypen mit TXT erstellen, die in allen Android-Ordnern gefunden werden.Abrufen von Dateien aus anderen Ordnern in Android

Ich bin etwas abgebogen Ich muss alle Ordner durchlaufen und dann eine Liste aller gefundenen Elemente mit dem Dateinamen ".txt" erstellen.

Meine Frage ist, welche Methode muss ich von Anfang an alle Ordner starten? Ich brauche auch eine Methode, um einen bestimmten Ordner zu öffnen (also kann ich die FileNameFilter-Methode durchlaufen).

Ich habe auch nichts gegen eine Empfehlung, wie man diese Art von Methode zu tun.

public String getFile(int position){ 
    File root = Environment.getExternalStorageDirectory();//This is incorrect it just goes to it's current environment it's folder found for this application. 
    FilenameFilter filter = new FilenameFilter() { 

     public boolean accept(File dir, String filename) { 
      // TODO Auto-generated method stub 
      return !filename.endsWith(".txt"); 
     } 

    }; 
    ArrayList<File> items = new ArrayList<File>(Arrays.asList(root.listFiles(filter))); 
    String returned = items.get(position).toString(); 
    return returned; 

Antwort

3

Sie benötigen eine rekursive Methode, wird eine Schleife durch einen Ordner und für jedes Kind: wenn das Kind ein Ordner ist, sich als Parameter mit dem Kind nennen. Wenn das Kind eine Datei ist, überprüfen Sie seinen Namen und fügen Sie ihn bei Bedarf hinzu.

Sie können so etwas wie

public void findAllFilesWithExtension(File dir, String extension, List<File> listFiles) { 
    List<File> listChildren = Arrays.asList(dir.listFiles()); 
    for(File child : listChildren) { 
     if(child.isDirectory()) { 
     findAllFilesWithExtension(child, extension, listFiles); 
     } else if(child.getName().endsWith(extension)) { 
     listFiles.add(child); 
     } //else 
    } //for 
}//met 

tun und es zunächst auf Ihrem Stammverzeichnis aufrufen.

+0

Vielen Dank Knospe. – sdfwer

+0

Mein Vergnügen. Oh, und ich hätte nichts dagegen, wenn Sie die Antwort akzeptieren;) – Snicolas

+0

Ich warte 6 Minuten, um zu akzeptieren: P. – sdfwer

Verwandte Themen