1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  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 bedankt sich.
  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 bedankt sich.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Daten speichern in einer Datei auf der jede Aktivität zugreifen kann Android App Entwicklung 12.05.2018
CSV Datei von einem Spiel ändern Android App Entwicklung 21.02.2018
xml/sharedpreferences.xml wann wird die Datei geladen? Android App Entwicklung 07.02.2018
[OFFEN] Schreiben sehr langsam mit Canvas und SurfaceView Android App Entwicklung 04.01.2018
Spinner item in Datenbank schreiben mysql Android App Entwicklung 23.12.2017
[OFFEN] QuizApp schreiben? Android App Entwicklung 03.12.2017
[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

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. Android dateinamen auslesen und in textdatei ausgeben

    ,
  2. Android dateiliste als Text

    ,
  3. Android dateiliste im string array speichern

    ,
  4. android ordner auslesen
Du betrachtest das Thema "Alle Dateien eines Ordners in ein Array schreiben" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.