Verzeichnis rekursiv auslesen / beschränkte Apis.

Status
Nicht offen für weitere Antworten.

dognose

Mitglied
Hallo,

ich möchte gerne ein Verzeichnis rekursiv auslesen, habe das auch schon hundertmal mit verschiedenen Sprachen (php vb.net c JavaScript) gemacht, aber hänge bei Java einfach fest...

Problem:
Da es sich bei dem Gerät, auf dem das Programm laufen sollte um ein Blackberry handelt, stehen mir nur
beschränkt Apis zur verfügung. (Die Klasse file() z.b. ist für "signed Applications" reserviert - kann ich also nicht)

Verfügbar:
Mir steht allerdings die FileConnection Klasse zur Verfügung, und daher wollte ich das mit den Folgenden Methoden lösen:

FileConnection.open(url) # öffnet die Fileconnection
FileConnection.list() #listet alle Dateien und Verzeichnisse auf als "Enumeration"
Enumeration.hasMoreElements() # true oder false
Enumeration.getNextElement() # nächstes
FileConnection.getName() # Datei / Ordner namen
FileConnection.isDirectory() #selbsterklärend.

Ansatz:
okay, die url für den Fileconnection open befehl, muss als String übergeben werden....
Alle weiteren überlegungen habe ich mal hier im Code "kommentiert"

Code:
public void getFolderContent(String url){
        try{
            /*öffnen der FileConnection für gegenwärtiges "root" verzeichnis*/
            FileConnection fconn = (FileConnection)Connector.open(url);
            
            /*Alle Elemente Auslesen*/
            for (Enumeration entry = fconn.list();entry.hasMoreElements();){
                /*Pfad des nächsten Elements für evtl. Rekursion aufbauen*/
                String next = url + (String)entry.nextElement();
                
                /*Zweite FileConnection öffnen, da die methode isDirectory ja auf 
                Child-Elemente angewendet werden sollte*/
                FileConnection fconn2 = (FileConnection)Connector.open(next);
                
                /*Prüfen ob es wirklich ein Ordner ist*/
                if (fconn2.isDirectory() == true ){
                    /*Ist einer, also rekursiv aufrufen*/
                    /*Fconn2 kann beendet werden, da sie nur der "überprüfung isDirectory diente"*/
                    fconn2.close();
                    getFolderContent(next);
                }else{
                    /*War kein Ordner, also ist es eine Datei
                    /*Hier alles nötige für die Datei ausführen. fconn2 kann auch wieder beendet werden, da 
                        Sie nur Ordner/File unterscheiden soll*/

                    fconn2.close();
                }
            }
            fconn.close();
        }
        catch (java.io.IOException ioe) {}
    }

Hinweis:
Das

Code:
for (Enumeration entry = fconn.list();entry.hasMoreElements();){

sieht etwas komisch aus, ist aber nahezu 1:1 aus der BB-Api-Reference...

http://www.blackberry.com/developers/docs/4.7.0api/

Resultat:
Von einem Verzeichnis, dass aus ca 20 Ordnern und 340 Dateien
besteht, erhalte ich die erststen 15 Dateien (entspricht den ersten beiden Ordnern)
danach ist schluss....

Hoffe jemand hat nen Denkanstoss für mich parat.

grüße,
dognose
 

Wildcard

Top Contributor
Du bekommst wohl eine Exception und wirfst sie großzügig weg:
Code:
catch (java.io.IOException ioe) {}
 

dognose

Mitglied
Wildcard hat gesagt.:
Du bekommst wohl eine Exception und wirfst sie großzügig weg:
Code:
catch (java.io.IOException ioe) {}

Daran dachte ich auch schon, aber es wird (scheinbar) keine Exception ausgelöst. Der Debugger läuft von Anfang bis zum Ende
einwandfrei durch. auch nach der Auslesung stehen alle gewünschten Funktionen zur verfügung.

Daher vermute ich, dass ich wohl irgendwie mit den fileconnections was falsch verwurschtelt hab...


edit: Prüfe das eben nochmal, und berichte...

edit edit: :oops:

Code:
catch (java.io.IOException ioe) {
            Dialog.Alert("exception");
        }

liefert mir doch tatsächlich so ne gemeine box in der steht "exception"...
Kann ich mir das genauer anzeigen lassen ?
wenn ich im Debuger den Try Catch teil weglasse, startet der Compiler nicht, mit der Meldung,
dass ich bei fileconnection auf jeden fall try/catch einbauen sollte....
 

Wildcard

Top Contributor
Das mindeste was in einem catch Block immer stehen muss ist e.printStackTrace().
Bevor dieses Programm jedoch produktiv zum Einsatz kommt, muss jedes printStackTrace durch sinnvolle Fehlerbehandlung + logging ersetzt werden.
Zum debuggen tut's das printStackTrace aber.
 

dognose

Mitglied
okay, danke mal zunächst.

ich werde mich nun wohl etwas darum bemühen, mich mit exceptions zu befassen (zunächst erstmal
das ganze irgendwie auf meinem Blackberry zu gesicht zu bekommen...)
 

dognose

Mitglied
so, ich habe nun die letzte nacht und heute damit verbracht ein
log System für meine Ap zu schreiben.

Hintergrund
Die gefundenen Dateien werden geprüft, ob sie mp3s sind, und dann wird byte weise
der ID Tag ausgelesen.

exception
Da ich leider im Debuger (BlackBerry Simulator) keine Dateien einfügen kann, in ich gezwungen,
die größten Debug Schritte live auf dem Gerät vorzunehmen.

Also schreibe ich die exceptions mit e.getMessage() in meine Log-File.

Was dabei herrauskommt ist folgendes:
Die ersten 2 Ordner inkl. Dateien werden aus- und in die Liste eingelesen,
ab dann erhalte ich für a 15 Dateien folgende Exception Message:

"Ressourcen des Dateisystems erschöpft"

Unklar ist mir auch, warum diese Exception (bei 400 Daten) dann nur ca 15mal auftaucht...

bleibt also noch ungeklärt, was mit den restlichen "360" Dateien passiert...

grüße,
dognose
 

dognose

Mitglied
Habs :)

fürs auslesen der Daten byteweise verwendete ich :

Code:
InputStream Input = fconn.openInputStream();

Hatte aber leider das Input.close() vergessen^^

Vielen Dank für deine "hints"
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Standard resources-Verzeichnis ändern Java Basics - Anfänger-Themen 9
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
S Verzeichnis Lese-Berechtigung entziehen Java Basics - Anfänger-Themen 1
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
S Image Datei selektieren und in Projekt Verzeichnis abspeichern/kopieren Java Basics - Anfänger-Themen 16
F Verzeichnis synchronisieren Java Basics - Anfänger-Themen 3
R Input/Output Dateinamen aus Verzeichnis in Datei schreiben Java Basics - Anfänger-Themen 3
M java.io.FileNotFoundException trotz dass Verzeichnis korrekt angegeben ist! Java Basics - Anfänger-Themen 20
M Erste Schritte Ordner im selber Verzeichnis wählen Java Basics - Anfänger-Themen 1
J Lokales Verzeichnis -> Globales Verzeichnis Java Basics - Anfänger-Themen 10
D Input/Output Ordner aus .Jar in das Verzeichnis der .Jar kopieren Java Basics - Anfänger-Themen 1
B Dateien aus dem "resource" - Folder kopieren in Verzeichnis Java Basics - Anfänger-Themen 9
B "Vor" Verzeichnis bekommen Java Basics - Anfänger-Themen 1
I Automatisch Verzeichnis erstellen bei File erstellen Java Basics - Anfänger-Themen 5
A Datei im erstelltem Verzeichnis erstellen? Java Basics - Anfänger-Themen 1
Z Gleiches Verzeichnis für class und java unter Windows Muss? Java Basics - Anfänger-Themen 11
Traxx JDK installieren .java nur im Java\bin Verzeichnis ausführbar Java Basics - Anfänger-Themen 22
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
K Bin-Verzeichnis Java Basics - Anfänger-Themen 4
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8
M Verzeichnis ausgeben mit Unterverzeichnissen und einzelnen Dateien Java Basics - Anfänger-Themen 18
S Darüberliegende Verzeichnis ansprechen Java Basics - Anfänger-Themen 3
C Datei in bestimmtes Verzeichnis speichern Java Basics - Anfänger-Themen 2
E Erste Schritte Verzeichnis auslesen, Dateinamen in Array speichern :-( Java Basics - Anfänger-Themen 7
P javac Verzeichnis Java Basics - Anfänger-Themen 2
N Input/Output mit FileDialog Verzeichnis wechseln Java Basics - Anfänger-Themen 20
eLogic Input/Output Liest Verzeichnis nicht aus??? Java Basics - Anfänger-Themen 6
G Bilder aus dem Projekt Verzeichnis werden n. angezeigt Java Basics - Anfänger-Themen 7
B Files aus Verzeichnis zählen Java Basics - Anfänger-Themen 9
M Verzeichnis öffnen? Java Basics - Anfänger-Themen 5
J Verzeichnis auslesen und festgelegte Anzahl Bilder zeichnen Java Basics - Anfänger-Themen 4
G Verzeichnis auslesen mit sehr sehr vielen Bildern Java Basics - Anfänger-Themen 6
M Verzeichnis verschieben Java Basics - Anfänger-Themen 5
H Verzeichnis Java Basics - Anfänger-Themen 9
R Verzeichnis feststellen Java Basics - Anfänger-Themen 14
O Aktuelles Verzeichnis Runtime.getRuntime().exec Java Basics - Anfänger-Themen 6
L Datei kopieren in anders verzeichnis geht nicht Java Basics - Anfänger-Themen 17
G Dateien im Verzeichnis anzeigen lasssen Java Basics - Anfänger-Themen 7
M Systembefehl Verzeichnis öffnen Java Basics - Anfänger-Themen 5
G Verzeichnis herausfinden Java Basics - Anfänger-Themen 3
N Verzeichnis auf genügend Festplattenplatz überprüfen - Linux Java Basics - Anfänger-Themen 15
M Eclipse: mehrere Versionen einer *.class im Verzeichnis Java Basics - Anfänger-Themen 3
G Verzeichnis von *.class ausgeben lassen Java Basics - Anfänger-Themen 3
G in Verzeichnis auf gleicher Ebene wechseln Java Basics - Anfänger-Themen 4
M Dateien aus Verzeichnis filtern, aber nicht nach Endung Java Basics - Anfänger-Themen 59
A dateiname aus verzeichnis auslesen Java Basics - Anfänger-Themen 2
G Wie finde ich das Verzeichnis von meinen Java Projekt? Java Basics - Anfänger-Themen 7
S String für das java jre home verzeichnis Java Basics - Anfänger-Themen 3
A Gibt es standardmässig in Java einen Verzeichnis-Listener? Java Basics - Anfänger-Themen 6
T Dateien aus einem Verzeichnis in eine Textdatei schreiben Java Basics - Anfänger-Themen 3
E JFileChooser -> Verzeichnis setzen Java Basics - Anfänger-Themen 10
M window verzeichnis öffnen Java Basics - Anfänger-Themen 6
zilti In Java das Verzeichnis wechseln Java Basics - Anfänger-Themen 21
Q Prüfen, ob ein FTP-Verzeichnis vorhanden ist Java Basics - Anfänger-Themen 2
M Importieren einer Javadatei aus einem anderen Verzeichnis Java Basics - Anfänger-Themen 4
G Reflection - Klasse laden aus anderem Verzeichnis Java Basics - Anfänger-Themen 4
G Windows-Verzeichnis ermitteln Java Basics - Anfänger-Themen 7
M Verzeichnis der main Klasse herausfinden Java Basics - Anfänger-Themen 7
M Datei ins aktuelle Verzeichnis speichern Java Basics - Anfänger-Themen 5
loadbrain relatives Verzeichnis angeben Java Basics - Anfänger-Themen 3
P Verzeichnis meines Programms Java Basics - Anfänger-Themen 4
S Verzeichnis auf Existenz prüfen + Inhalt holen Java Basics - Anfänger-Themen 9
F Jar-"Home" Verzeichnis Java Basics - Anfänger-Themen 5
G aktuelles verzeichnis finden Java Basics - Anfänger-Themen 5
M Namen der Dateien in einem bestimmten Verzeichnis erhalten Java Basics - Anfänger-Themen 4
P Wieso wird der komplette Inhalt im verzeichnis nicht gelösch Java Basics - Anfänger-Themen 5
Bierhumpen verzeichnis auslesen? Java Basics - Anfänger-Themen 13
S Verzeichnis darstellen Java Basics - Anfänger-Themen 3
G Auf File / Verzeichnis innerhalb eines jars zugreifen Java Basics - Anfänger-Themen 2
T Dateien/Ordner in einem Verzeichnis zählen Java Basics - Anfänger-Themen 13
G das aktive Verzeichnis abfragen Java Basics - Anfänger-Themen 4
F Home-Verzeichnis des Benutzers ändern Java Basics - Anfänger-Themen 4
E In welches Verzeichnis müssen selbsterstellte Klassen ? Java Basics - Anfänger-Themen 6
L Mit File erzeugtes Verzeichnis ist schreibgeschützt Java Basics - Anfänger-Themen 3
H Verzeichnis lesen, und nur unterverzeichnisse heraus filtern Java Basics - Anfänger-Themen 6
M Paket aus beliebigem Verzeichnis importieren Java Basics - Anfänger-Themen 9
G Verzeichnis kopieren Java Basics - Anfänger-Themen 2
X Verzeichnis Probs mit Klassen Java Basics - Anfänger-Themen 3
S Verzeichnis auslesen! Java Basics - Anfänger-Themen 3
R dateien in einem verzeichnis einlesen Java Basics - Anfänger-Themen 3
T Unter Windows mit Java ein Verzeichnis erstellen? Java Basics - Anfänger-Themen 4
M Filecooser - Verzeichnis ohne "" Laufwerke mit &q Java Basics - Anfänger-Themen 2
S Ein Verzeichnis anpollen Java Basics - Anfänger-Themen 8
M Dateien in einem Verzeichnis zählen Java Basics - Anfänger-Themen 21
B Angabe import-Verzeichnis & Error704:cannot access direc Java Basics - Anfänger-Themen 6
G Dateinamen aus einem Verzeichnis ausgeben Java Basics - Anfänger-Themen 3
M alle Files aus einem Verzeichnis finden Java Basics - Anfänger-Themen 15
G Verzeichnis auslesen und alle Unterordner/Dateien speichern Java Basics - Anfänger-Themen 9
A Windows tmp-Verzeichnis ermitteln Java Basics - Anfänger-Themen 6
H Passwort Brute Force rekursiv Java Basics - Anfänger-Themen 7
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
R0m1lly Kombinationen aus int array rekursiv Java Basics - Anfänger-Themen 2
L Rekursiv gegebenes Passwort herausfinden. Java Basics - Anfänger-Themen 2
P9cman Char Index rekursiv finden Java Basics - Anfänger-Themen 4
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben