Dateiexplorer - Trennung Daten und Ansicht

Status
Nicht offen für weitere Antworten.

Arbon

Bekanntes Mitglied
Hallo!

Ich möchte einen Dateiexplorer programmieren. An den Grundlagen scheitert es nicht, jedoch habe ich noch einige Verständnisschwierigkeiten das ganze sinnvoll in Daten und in die Ansicht zu unterteilen. Mir fällt keine wirklich schöne Möglichkeit ein, das ganze zu unterteilen.

Hier erstmal meine Gedanken dazu:

In der Oberfläche möchte ich die Daten unterschiedlich darstellen können, also zB als Liste oder in Symboldarstellung. Dazu muss ich wie man sieht erstmal die anzuzeigenden Daten von der eigentlichen Darstellung trennen. Ich hätte vor in der Oberfläche mit nur einem File zu arbeiten, welches dann in der Adressleiste angezeigt wird. In der Liste würden dann die einzelnen Dateien, welche man mit listFiles() bekommt, angezeigt werden.

Ein Problem bei dieser Methode ist, dass es in Windows ja mehrere Laufwerke gibt, in Unix hingegen nur ein root-Verzeichnis. Diese bekommt man mit File.rootFiles() heraus, jedoch wäre das Problem das bei Windows die jeweiligen Laufwerke kein "Oberverzeichnis" haben. Ich hätte vor, der Ansicht immer den Pfad zu übergeben und mittels listFiles() sollten die einzelnen Dateien herausgeholt werden und in der Oberfläche dargestellt werden. Da die einzelnen Laufwerke natürlich kein Oberverzeichnis haben, also in dem zB C:, D:, etc. liegt, wäre dies dann so nicht möglich. Es könnte mit if-Bedienungen gearbeitet werden, dies ist aber denke ich eher schmutzig. Ich habe auch schon überlegt einfach von der File-Klasse abzuleiten und die einzelnen Methoden so zu überschreiben, das dann eben die Laufwerke als Kinder gelistet werden. Da man dann mit diesem praktisch nicht vorhandenen Oberverzeichnis nicht wirklich arbeiten darf (Dateien hineinkopieren, etc), müsste hier wieder mit vielen Bedienungen gearbeitet werden. Wieder keine wirklich schöne Lösung. Da ich zusätzlich vorhabe, ein weiteres sozusagen virtuelles File zu verwenden, in welchem frei definierbare Favoriten liegen, würde die Anzahl der Bedienungen nochmals steigen.

Ein weiteres Problem wäre, die einzelnen Dateioperationen zu implementieren. Eine Möglichkeit wäre, für die verschiedenen Dateioperationen eigene Klassen zu definieren, zB eine Klasse Copy, welcher die Quelldateien und der Zielordner übergeben wird und welche danach eben kopiert. Diese Klassen müssten aber wiederum eine Verbindung zu Oberfläche besitzen, da ich die Fortschritte in einem Dialog anzeigen möchte. Das könnte man mit Listenern machen, allerdings bräuchte man für jede Operation einen eigenen Listener und einen eigenen Dialog, da beim Löschen zB natürlich andere Informationen angezeigt werden müssen.

Ich hoffe meine Gedanken sind einigermaßen verständlich. Gibt es da elegantere Vorgehensweisen für meine Probleme? Ich finde meine Überlegungen eigentlich nicht sehr gut, allerdings fällt mir nicht wirklich etwas besseres ein. Ich vermute ich habe da sozusagen ein Brett vor dem Kopf, obwohl eine saubere Vorgehensweise gar nicht so weit entfernt wäre, kann mich allerdings auch damit täuschen.

Entschuldigung dass ich das frage, aber mir fällt auf das bei meinen meisten Projekten das Design sehr unsauber ist, allerdings eine nachträgliche Änderung ohne grobe Änderungen nicht durchführbar ist, und ich möchte lernen das ganze gleich von vorhinein einigermaßen sauber vorzugehen. Klar, man stößt immer wieder nachträglich auf Designfehler, nur sind diese meistens nicht so problematisch wenn das ganze auf einer soliden Grundlage aufbaut. In ein Anwendungsframework möchte ich mich bewusst nicht zwängen, ich will so etwas selbst sauber designen.

mfG
Arbon
 

Arbon

Bekanntes Mitglied
Schon klar, aber eben genau dieses einfach drauf los schreiben wollte ich diesmal vermeiden und mir im vorhinein Gedanken machen. und wenn ich da schon einige Probleme erkenne, dann sollte ich mir erstmal um diese kümmern bevor ich drauf los schreibe.
 

Kerb_09

Mitglied
Nun, wenn ich das richtig sehe wäre es doch für Windows besser zu gucken/auszulesen wie viele Festplatten vorhanden sind und für jede, in deinem geplanten Programm, ein eigenes "root" Verzeichnis zu nutzen! (bzw. dann halt mehrere -> File <- Typen! Wenn es dir nicht zu suspekt ist ;))

Hier mal das nette Pic über Dateisysteme von Wiki:
Wiki Übersicht Dateisysteme - UNIX, Windows, MAC


Wären dann doch sauberer als zu viele Verzweigungen!
Oder was meinst du dazu ?
Windows händelt dies ja quasi nicht anders! Legt ja für jede Festplatte eine separate Wurzel an!
(Ebenso für Sticks und sonstige Laufwerke...)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Befüllung einer Tabelle mit Checkbox, Trennung GUI und Model Java Basics - Anfänger-Themen 5
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
Z GUI und Logik - Trennung Java Basics - Anfänger-Themen 2
S OOP Trennung der GUI von der Logik Java Basics - Anfänger-Themen 11
H trennung von string Java Basics - Anfänger-Themen 11
L Wie Trennung von Logik und Ausgabe? Java Basics - Anfänger-Themen 6
D unklare Meldung nach Code-Trennung Java Basics - Anfänger-Themen 3
M Trennung von Gui und Datenversorgung Java Basics - Anfänger-Themen 2
8 Hilfe bei Trennung von GUI und Verarbeitung Java Basics - Anfänger-Themen 12
S Benutzung von Thread -> Trennung GUI und Berechnungen &lt Java Basics - Anfänger-Themen 2
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
P Daten auslesen und in CSV speichern Java Basics - Anfänger-Themen 6
J Daten aus zweiter Klasse importieren Java Basics - Anfänger-Themen 33

Ähnliche Java Themen

Neue Themen


Oben