Java Reference
In-Depth Information
Mit den ersten beiden Anweisungen werden die beiden ListModels geleert, damit bei
mehrmaligem Betätigen der Schaltfläche die Einträge des aktuell auszulesenden Ver-
zeichnisses nicht an die Verzeichnis- bzw. Dateiliste des vorhergehenden Vorganges
angehängt werden.
Nur wenn im Textfeld ein Verzeichnisname eingetragen ist, soll eine Auswertung erfol-
gen. Dies stellen Sie mit der folgenden
if
-Anweisung sicher. Ist ein Verzeichnisname
angegeben, wird das
File
-Objekt mit dem Namen
verzeichnis
erzeugt. Mit der Methode
exists()
wird geprüft, ob das Verzeichnis im Dateisystem existiert. Ist dies der Fall,
kann die Auswertung erfolgen.
Für die Auswertung wird ein lokales String-Array mit dem Namen
inhalt
durch Aufruf
der Methode
list()
des
File
-Objekts mit den Namen der Verzeichnisse und Dateien
gefüllt.
String[] inhalt = verzeichnis.list();
12
In einer
foreach
-Schleife können daraufhin die Einträge abgearbeitet werden. Um über-
prüfen zu können, ob der jeweilige Eintrag in die Verzeichnis- oder in die Dateiliste ein-
getragen werden muss, muss zu jedem Eintrag ein
File
-Objekt erstellt werden. Die
Methode
isDirectory()
dieses Objekts liefert das Entscheidungskriterium für die kor-
rekte Zuordnung.
for (String eintrag: inhalt) {
File f=new File(verzeichnis, eintrag);
if (f.isDirectory()) {
jListVerzeichnisseModel.addElement(eintrag);
}else{
jListDateienModel.addElement(eintrag);
}
}
Listing 12.2
foreach-Schleife zur Prüfung auf Datei oder Verzeichnis
Zu beachten ist, dass das
File
-Objekt in der
foreach
-Schleife mit dem Konstruktor, der
Verzeichnisname und Dateiname als Parameter erwartet, erstellt wird. Nur so entspre-
chen die erzeugten
File
-Objekte den Einträgen, des eingelesenen Verzeichnisses, und
die Methode
isDirectory()
liefert korrekte Ergebnisse. Werden die
File
-Objekte nur
mit den Dateinamen erzeugt, haben sie keine Entsprechung im Dateisystem, und die
Methoden
isFile()
und
isDirectory()
liefern immer
true
zurück, weil die Dateien
nicht existieren.