1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Hans-Peter, 05.11.2010 #1
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    Hallo zusammen,

    Ich möchte die Dateinamen aller Dateien, die in einem Ordner (Der Name des Ordners ist in einem String gespeichert) auf der SD-Karte gespeichert sind in ein Array einlesen.
    Das müsste eigentlich funktionieren, denn die Dateimanager machen es ja bestimmt ähnlich! :D


    Der Sinn ist, dass der User dem Programm sehr viele Dateien übergeben muss. Dass er nicht bei allen einzeln den Speicherort eingeben muss dachte ich, er muss sie alle in einen Ordner stecken und das Programm findet sie dann automatisch.


    Es müsste doch bestimmt eine Funktion geben wie directory.getFiles() oder so... (geht übrigens nicht)

    Würde mich über gute Antworten sehr freuen!
    Danke vorweg,

    Hans-Peter
     
  2. Fr4gg0r, 05.11.2010 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    File deinRootDir = new File("/sdcard/");
    ArrayList<String> files = new ArrayList<String>();
    deinRootDir.listFiles(new FileFilter(){
    public boolean accept(File f){
    files.add(f.getAbsolutePath());
    return false;
    }}


    Ansonsten kannste auch einfach deinRootDir.listFiles(); verwenden, dann bekommste aber eine Liste mit File Objekten zurück..
     
  3. Hans-Peter, 05.11.2010 #3
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    Danke für die Hilfe aber ich habs grad mal ausprobiert, eclipse hat Probleme mit files.add, er unterkringelt beide Wörter. Und er unterkringelt die letzte schließende Klammer.

    Kann man das noch irgendwie ändern, dass es klappt, ich versteh die fehlermeldung nicht...

    Danke für die Mühe
    Hans-Peter
     
    Zuletzt bearbeitet: 05.11.2010
  4. funcoder, 07.11.2010 #4
    funcoder

    funcoder Erfahrener Benutzer

    Hast du auch das "File-Package" importiert?
    Also folgendes oben in deiner JAva File hinzugefügt?
    import java.io.File;

    Wenn ja, was genau bekommst du für einen Fehler in Eclipse wenn du mit den Mauszeiger über das unterkringelte drüber gehst?
     
  5. Hans-Peter, 07.11.2010 #5
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    File deinRootDir = new File("/sdcard/");
    ArrayList<String> files = new ArrayList<String>
    ();
    deinRootDir.listFiles(new FileFilter(){
    public boolean accept(File f){
    files.add(f.getAbsolutePath();
    return false;
    }} );

    Hat geklappt.

    Ich bekomme nur das array nicht ausgelesen...
    String test = files.get(0);
    geht nicht, es stürzt immer ab...
     
  6. Fr4gg0r, 07.11.2010 #6
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Ja guck in den Log.. (show view, other, logcat)

    Wenn das nicht klappt, ist deine Liste wohl leer :p
     
  7. Hans-Peter, 07.11.2010 #7
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    Liste leer?
    Auf der sd-Karte??

    Ich schau morgen mal im log.
    Schon in eclipse, oder?
     
  8. Fr4gg0r, 07.11.2010 #8
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    ja
     
  9. funcoder, 08.11.2010 #9
    funcoder

    funcoder Erfahrener Benutzer

    Du solltest vielleicht mal deine arraylist mit einem Iterator durchlaufen. Damit beugst du eine exception vor falls keine Datei vorhanden ist. Habe deinen Zugriff via der get Methode eh noch nie gesehen oder verwendet. ?
     
  10. Hans-Peter, 10.11.2010 #10
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    Da steht nichts sinnvolles drin...
    icon=4 oder so...


    Mit welcher Methode machst du es?


    Danke für eure Hilfe
     
    Zuletzt bearbeitet: 10.11.2010
  11. funcoder, 10.11.2010 #11
    funcoder

    funcoder Erfahrener Benutzer

    Mit einem Iterator :)

    Iterator itr = files.iterator();
    while(itr.hasNext())
    System.out.println(itr.next());
    }

    Der Iterator durchläuft deine Arraylist solange bis keine weiteren Einträge vorhanden sind...

    System.out.println musst du natürlich noch ersetzen...
     
    Hans-Peter gefällt das.
  12. Hans-Peter, 11.11.2010 #12
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    Code:
    itr.hasNext()
    ist immer false...


    Code:
    Iterator itr = files.iterator();
    [LEFT]while(itr.hasNext()){
    Toast.makeText(this, (CharSequence) itr.next(), Toast.LENGTH_LONG).show();[/LEFT]
    }
    gibt also keine Meldung zurück! ​





    Code:
    [SIZE=2]File Dir = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] File([SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"/sdcard/"[/COLOR][/SIZE][/COLOR][/SIZE]);[/SIZE]
    [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]final[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] ArrayList<string> files = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] ArrayList<string>();[/SIZE][/LEFT]
    [SIZE=2]Dir.listFiles([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] FileFilter(){[/SIZE]
     
    [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]public [/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]boolean[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] accept(File f) {[/SIZE]
    
    [SIZE=2]Object Path = f.getAbsolutePath();[/SIZE]
    [LEFT][SIZE=2]files.add((string) Path);[/SIZE]
    [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]return [/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]false[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2];[/SIZE][SIZE=2]}[/SIZE][SIZE=2]});[/SIZE][/LEFT]
    [/LEFT]
    
    

    Stimmt der Code dann auch??​
     
    Zuletzt bearbeitet: 11.11.2010
  13. Fr4gg0r, 11.11.2010 #13
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Erstens muss das "String" und nicht string heißen.
    Ansonsten sieht das richtig aus, auch wenn es nicht sinnvoll ist das Ergebnis von f.getAbsolutePath() (ein String) in ein Object zu packen und dieses dann wieder in einen String zu casten..
     
  14. Hans-Peter, 11.11.2010 #14
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    Ich hab jetzt:


    Bundle bundle =
    this.getIntent().getExtras();

    String srcFolder=bundle.getString("src");




    File Dir = new File(srcFolder);
    final ArrayList<String> files = new ArrayList<String>();



    Dir.listFiles(new FileFilter(){
    publicboolean accept(File f) {
    files.add((String) f.getAbsolutePath());
    returnfalse;
    }
    });




    Iterator itr = files.iterator();
    while(itr.hasNext()){
    Toast.makeText(this, (CharSequence) itr.next(), Toast.LENGTH_LONG).show();
    }




    geschrieben! auch das geht nicht...
     
  15. Fr4gg0r, 11.11.2010 #15
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Teste es doch mal mit srcFolder = "/sdcard/";
    Dann wirst du sehen wo der Fehler liegt. ;)
     
  16. Hans-Peter, 11.11.2010 #16
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    passiert auch nichts...
     
  17. funcoder, 11.11.2010 #17
    funcoder

    funcoder Erfahrener Benutzer

    Was bekommst du für einen Fehler in der logcat Ausgabe?
    Bzw. hast du mal testweise was er bei:
    f.getAbsolutePath()
    zurückbekommt in die Logausgabe geschrieben?
    Versuch mal den Fehler weiter einzugrenzen...
     
  18. Hans-Peter, 12.11.2010 #18
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    if(files.isEmpty()){
    Toast.makeText(this, "EMPTY" , Toast.LENGTH_LONG).show();
    }

    ...habe ich nach dem Einlesen der Dateien geschrieben...
    Er zeigt empty...

    Stimmt dann die Methode zum einlesen nicht??
     
  19. Hans-Peter, 16.11.2010 #19
    Hans-Peter

    Hans-Peter Threadstarter Android-Hilfe.de Mitglied

    srcFolder= "/sdcard/";


    File Dir = new File(srcFolder);
    final ArrayList<String> files = new ArrayList<String>();​


    Dir.listFiles(new FileFilter(){
    public boolean accept(File f) {
    files.add((String) f.getAbsolutePath());
    Log.v("File", f.getAbsolutePath());
    return false;
    }});​


    Er schreibt nichts ins Logcat...​
     
  20. Fr4gg0r, 16.11.2010 #20
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Vielleicht keine Sd Karte eingelegt? :laugh:
     
    Hans-Peter gefällt das.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Samsung S3 USB Dateien werden nicht aktualisiert Android App Entwicklung 03.08.2017
[ERLEDIGT] Probleme mit Bluetooth / Beam Ordner Android App Entwicklung 25.07.2017
[GESCHLOSSEN] Kennt jemand ein Programm , um .DEX Dateien zu öffnen, bearbeiten und wieder speichern? Android App Entwicklung 20.07.2017
[OFFEN] Probleme in den Speicher schreiben Android App Entwicklung 13.07.2017
[ERLEDIGT] Frage zu den drawable-Ordnern Android App Entwicklung 20.05.2017
[ERLEDIGT] (JSON-)Datei speichern Android App Entwicklung 08.04.2017
Frage zu Rekursives Ordner kopieren Android App Entwicklung 07.02.2017
Notizen App problem Android App Entwicklung 11.01.2017
DDMS FIle Explorer keine Dateien mehr vorhanden Android App Entwicklung 16.11.2016

Users found this page by searching for:

  1. android ordner auslesen

Du betrachtest das Thema "Alle Dateien eines Ordners in ein Array schreiben" im Forum "Android App Entwicklung",