Übung 04: Datei-Manager

Werbung
Übung Softwareentwicklung 2
SS 2005
Übung 04: Datei-Manager
Abgabetermin:
Name:
14. 04. 2005
Matrikelnummer:
Informatik: † G1 (Prähofer)
† G2 (Prähofer)
† G3 (Wimmer)
WIN: † G1 (Schwinger) † G2 (Schwinger) † G3 (Kronsteiner)
Aufgabe
Übung 4
Punkte abzugeben schriftlich
24
† G4 (Ibrahim)
† G4 (Wimmer)
† G5 (Ibrahim)
abzugeben
elektronisch
Prosabeschreibung, Java-Klassen
für die Dateiverwaltung,
Testprogramm für die
Dateiverwaltung, Testausgabe
dieses Programms.
Java-Klassen für die
Dateiverwaltung,
Testprogramm für die
Dateiverwaltung.
Java-Klassen des Datei-Managers,
Ausgabe für ein Test-Verzeichnis.
Java-Klassen des
Datei-Managers.
Übung 04: Datei-Manager
korr.
Pkte
†
(24 Punkte)
Teil 1: Verwaltung von Dateien und Verzeichnissen
(16 Punkte)
Implementieren Sie eine Klassenhierarchie für die Repräsentation von Dateien (Klasse FileNode) und
Verzeichnissen (Klasse DirectoryNode). Dateien haben einen Namen und eine Länge, Verzeichnisse
einen Namen und weitere Unterelemente (Dateien und Verzeichnisse). Diese sollen in einer gemeinsamen,
sortierten Liste verwaltet werden. Verwenden Sie dazu Klassen und Interfaces aus dem Java Collection
Framework. Erklären Sie in der Prosabeschreibung, warum Sie diese Klassen gewählt haben.
Implementieren Sie alle nötigen get- und set-Methoden für die Felder. Die Liste mit den Unterelementen
soll nicht direkt zugänglich sein, sondern es soll beim Zugriff ein Array mit allen Unterelementen geliefert
werden.
Dateien und Verzeichnisse sollen nach folgenden Kriterien sortiert werden (angelehnt an die Sortierung
im Explorer von Windows XP):
•
•
•
•
Verzeichnisse vor Dateien.
Verzeichnisse alphabetisch.
Dateien, deren Name mit einer Zahl beginnt, aufsteigend nach dieser Zahl. Negative Zahlen
können ignoriert werden.
Wenn die Zahl am Beginn gleich ist, oder wenn am Beginn keine Zahl steht, alphabetisch.
Bei der alphabetischen Sortierung soll die Groß- und Kleinschreibung ignoriert werden. Es soll nicht
möglich sein, dass ein Verzeichnis zwei Elemente enthält, die nach diesen Kriterien gleich sind.
Beispiel für eine korrekte Sortierung von Dateinamen: "2 ab", "2 Ac", "10 ab", "ab", "aC".
Um die Klassenhierarchie flexibel einsetzen zu können, sollen alle Dateien und Verzeichnisse ein Feld
userData besitzen. Verwenden Sie dazu einen generischen Typ-Parameter.
Versuchen Sie, Compiler-Warnungen möglichst zu vermeiden. Wenn sich eine Warnung nicht vermeiden
lässt, muss diese in einem Kommentar gerechtfertigt werden.
Übung Softwareentwicklung 2
SS 2005
Testen Sie die Klassen wie in den vorigen Übungen. Folgende Fälle müssen auf jeden Fall getestet
werden: Sortierreihenfolge, Duplikate in der Liste, Verwendung verschiedener Typ-Parameter für
userData. Ist es möglich, einem Verzeichnis eine Datei hinzuzufügen, die mit einem anderen Typ
parametrisiert wurde als das Verzeichnis? Testen Sie auch das!
Teil 2: Datei-Manager
(8 Punkte)
Verwenden Sie die Klassen aus dem vorigen Teil, um eine Datei- und Verzeichnis-Liste für ein
Verzeichnis der Festplatte auszugeben. Bauen Sie dazu die entsprechende Struktur aus FileNodes und
DirectoryNodes auf.
Verwenden Sie das Feld userData, um das Datum der letzten Änderung zu speichern (als Objekt der
Klasse java.util.Date)
Für den Zugriff auf das Dateisystem bietet Java die Klasse java.io.File an. Die Methode
getName() liefert den Dateinamen, length() liefert die Dateigröße und lastModified() das
Änderungsdatum. Mit isDirectory() können Sie feststellen, ob es sich um eine Datei oder ein
Verzeichnis handelt, und listFiles() liefert eine Liste mit allen Dateien und Unterverzeichnissen
eines Verzeichnisses.
Geben Sie dann die Struktur mit allen Feldern auf der Konsole aus. Das Wurzel-Verzeichnis soll dem
Programm als Parameter übergeben werden.
Das folgende Beispiel zeigt eine mögliche Testausgabe für ein Verzeichnis mit einigen Dateien und
Unterverzeichnissen:
Test
100 abc
file 1 in
file 2 in
20 abc
3 abc
abc
file 1 in
file 2 in
3 abc.txt
20 abc.txt
100 abc.txt
-1 abc.txt
-20 abc.txt
-abc.txt
abB.txt
abc.txt
abc1.txt
abD.txt
dir
dir
dir
dir
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Fri
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
Apr
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
07:00:00
08:00:00
08:00:01
08:00:02
08:01:00
08:02:00
08:03:00
08:03:01
08:03:02
08:04:00
08:05:00
08:06:00
08:07:00
08:08:00
08:09:00
08:10:00
08:11:00
08:12:00
08:13:00
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
CEST
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
2005
[DIR]
[DIR]
(10 bytes)
(20 bytes)
[DIR]
[DIR]
[DIR]
(30 bytes)
(40 bytes)
(10 bytes)
(20 bytes)
(30 bytes)
(40 bytes)
(50 bytes)
(60 bytes)
(70 bytes)
(80 bytes)
(90 bytes)
(100 bytes)
Herunterladen