H
HILFESUCHENDER
Gast
hi...
hier die aufgabe:
Programmiere eine Klassenhierarchie für Verzeichniseinträge:
Klasse DirEntry hat private Felder für Name, letztes Änderungsdatum und Größe eines Verzeichniseintrags.
Von DirEntry erbt die Klasse Directory, die zusätzlich eine LinkedList von DirEntry enthält, um die Einträge zum Verzeichnis zu speichern.
Programmiere eine Konsolenanwendung, in die der Benutzer ein Verzeichnis (absoluter oder relativer Pfad) eingibt.
Die Anwendung speichert die Einträge zu diesem Verzeichnis und seinen Unterverzeichnissen in einem Directory-Objekt und gibt anschließend diese Daten auf die Konsole aus.
In jeder Zeile wird hier die Information zu einem Verzeichniseintrag mit dem Namen, dem letzten Änderungsdatum und der Größe ausgegeben.
Rücke die Ausgabe je Verzeichnisebene um 2 Zeichen ein.
mein programm gibt mir zwar alle unterverzeichnisse aus, aber in falscher formatierung (das das datum u größe noch nicht die richtige form haben ist nicht so wichtig aber die EINRÜCKUNGEN sind das entscheidende)
hier die aufgabe:
Programmiere eine Klassenhierarchie für Verzeichniseinträge:
Klasse DirEntry hat private Felder für Name, letztes Änderungsdatum und Größe eines Verzeichniseintrags.
Von DirEntry erbt die Klasse Directory, die zusätzlich eine LinkedList von DirEntry enthält, um die Einträge zum Verzeichnis zu speichern.
Programmiere eine Konsolenanwendung, in die der Benutzer ein Verzeichnis (absoluter oder relativer Pfad) eingibt.
Die Anwendung speichert die Einträge zu diesem Verzeichnis und seinen Unterverzeichnissen in einem Directory-Objekt und gibt anschließend diese Daten auf die Konsole aus.
In jeder Zeile wird hier die Information zu einem Verzeichniseintrag mit dem Namen, dem letzten Änderungsdatum und der Größe ausgegeben.
Rücke die Ausgabe je Verzeichnisebene um 2 Zeichen ein.
mein programm gibt mir zwar alle unterverzeichnisse aus, aber in falscher formatierung (das das datum u größe noch nicht die richtige form haben ist nicht so wichtig aber die EINRÜCKUNGEN sind das entscheidende)
Code:
package at.htl_grieskirchen.dorgler.dirHierachie;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
public class MainClass {
/**
* @param args
*/
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String path = "";
System.out.println("Geben Sie bitte den Pfad ein: ");
try {
path = reader.readLine();
} catch (IOException e) {
System.err.println("Fehler beim eingeben"); e.printStackTrace();
}
work(path, 0);
}
private static void work(String path, int under){
Directory dir = new Directory();
DirEntry dirEnt = new DirEntry();
File help;
File startFile = new File(path);
String[] allFiles = startFile.list();
dir.setName(startFile.getName());
dir.setLastChang(startFile.lastModified());
dir.setSize(startFile.length());
for(int i = 0; i < under; i++){
System.out.print("\t");
}
System.out.println(dir.getName() + " | " + dir.getLastChang() + " | " + dir.getSize());
if(allFiles != null){
for(int i = 0; i < allFiles.length; i++){
help = new File(path + "//" + allFiles[i]);
if(!help.isDirectory()){
dirEnt.setName(help.getName());
dirEnt.setLastChang(help.lastModified());
dirEnt.setSize(help.lastModified());
dir.addElemToList(dirEnt);
dirEnt = new DirEntry();
}
if(help.isDirectory()){
work(help.getAbsolutePath(), under++);
}
}
Iterator it = dir.getList().iterator();
while(it.hasNext()){
DirEntry itHelp = (DirEntry)it.next();
for(int i = 0; i < under; i++){
System.out.print("\t");
}
System.out.println("\t" + itHelp.getName() + " | " + itHelp.getLastChang() + " " + itHelp.getSize());
}
}
}
}
Code:
package at.htl_grieskirchen.dorgler.dirHierachie;
public class DirEntry {
private String Name;
private long lastChang, size;
public DirEntry(){
}
public long getLastChang() {
return lastChang;
}
public void setLastChang(long lastChang) {
this.lastChang = lastChang;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
}
Code:
package at.htl_grieskirchen.dorgler.dirHierachie;
import java.util.LinkedList;
public class Directory extends DirEntry{
private LinkedList<DirEntry> list = new LinkedList<DirEntry>();
public Directory(){
}
public LinkedList<DirEntry> getList() {
return list;
}
public void addElemToList(DirEntry ent) {
this.list.add(ent);
}
}