# Doppelte Dateien finden



## EdvanSchleck (1. Feb 2005)

Hallo erst mal,
Ich muss ein Programm schreiben welches doppelte Dateien aufspürt, anzeigt und nach einer Pop-Up-Meldung auch eine Datei davon löscht. Es wäre außerdem sehr hilfreich wenn es eine Datei anlegen würde mit einer Liste der doppelten Dateien. Da ich aber noch nicht soviel Ahnung von Java habe hoffe ich dass jemand mir unter die Arme greifen kann und mir wenigstens teilweise bei einem Lösungsansatz behilflich sein kann oder mir erklärt wie ich vorzugehen habe.

Im Vorraus schon mal Danke.


----------



## EdvanSchleck (1. Feb 2005)

Das ganze soll in Java programmiert werden da es sein kann dass das Programm plattformübergreifend eingesetzt wird.


----------



## Destiny1985 (1. Feb 2005)

Hast denn schon selber was gecodet ? Wenn ja poste das mal un stell konkretere Fragen...


----------



## EdvanSchleck (1. Feb 2005)

Das Problem ist dass ich gar nicht weiß mit was ich anfangen soll. Ich hab von Java-Programmierung noch net soviel Ahnung, ich kann bis jetzt erst Schleifen oder Berechnungen coden. Viel mehr hab ich noch net drauf.
Es würde mir schon helfen wenn mir jemand schreiben würde wie ich vorzugehen hab. Damit meine ich die einzelnen Schritte. Den Code kann ich mir dann in irgendeinen Tutorial raussuchen.


----------



## thE_29 (1. Feb 2005)

Du könntest alle Dateien via System.out.println("DATEI::");

ausgeben lassen

dann setzt du den System.setOut(Printstream) auf die Datei um, die du als Ausgabe haben willst (somit wäre das gegessen).


Dann brauchst du eine rekursive Funktion die alle Ordner durchläuft (was unter Java Stunden dauern kann.... besser wäre C/C++) und dann jede Datei mit jeder Datei vergleicht die er bereits gefunden hat (das dauert....).

Ich würde 1mal durchlaufen ohne vergleiche und alle Dateien (mit Pfad) in einer ArrayList speichern!

Dann mußt du den hinteren Teil nehmen (substring(string.lastIndexOf(File.separator))  und das dann vergleichen!

Findet man 2gleiche schwups wups hast du es!

Unterscheiden muß man dann noch wegen Groß/Kleinschreibung die ja in Windows egal ist (unter Linux nicht) und sowas ist halt net gleich

"datei1.txt".equals("Datei1.txt") == false

obwohl das für windows die ein und dieselbe Datei sein kann!!


Nachtrag: das weitere Problem ist jenes, das du die HDDs mit Java net rausfinden kannst!

Du könntest dies über Parameter lösen oder hardcoded immer auf C:\\ gehen was in Linux ja schon mal net geht!


----------



## EdvanSchleck (1. Feb 2005)

Vielen Dank erstmal. Mit deiner Antwort hab ich jetzt wenigstens mal einen Ansatz. Aber mit meinen Kenntnissen graut es mir jetzt schon bei der Umsetzung


----------



## foobar (1. Feb 2005)

Was sind denn doppelte Dateien? Selbe Größe, Name, Rechte, Erstellungs-Datum?
Nach welchen Kriterien sollen die Dateien verglichen werden?


----------



## EdvanSchleck (1. Feb 2005)

Die Datei soll nach ihrem Dateinamen verglichen werden mit allen Angaben wie Pfad, Größe, letztes Bearbeitungsdatum usw.
Vorerst programmiere ich es mal nur für Windows, dann fällt schon mal das "Datei1=datei1=false"-Problem weg.


----------



## thE_29 (1. Feb 2005)

[edit by stevg]
sry thE_29, aber wir hatten uns doch drauf geeinigt keine Hausaufgaben zu lösen.
[edit]


----------



## EdvanSchleck (1. Feb 2005)

Das sind auch keine Hausaufgaben sondern ich soll das für den Betrieb in dem ich arbeite programmieren.
Ich bin halt erst im 1.Lehrjahr und sie haben gemeint ich soll mal versuchen ob ichs hinbekomme.


----------



## thE_29 (1. Feb 2005)

@stevi: ich hatte das schon und hab nur 1e if Bedingung reingetan (natürlich war es in einem anderen Projekt, aber egal)

Mir isses egal  

War 2 min. copy past und Kommentare


----------



## stev.glasow (1. Feb 2005)

thE_29 hat gesagt.:
			
		

> @stevi: ich hatte das schon und hab nur 1e if Bedingung reingetan (natürlich war es in einem anderen Projekt, aber egal)
> 
> Mir isses egal
> 
> War 2 min. copy past und Kommentare


Gut dann ist das löschen ja nicht so schlim, hatte mir schon Gedanken gemacht.




			
				EdvanSchleck hat gesagt.:
			
		

> Das sind auch keine Hausaufgaben sondern ich soll das für den Betrieb in dem ich arbeite programmieren.
> Ich bin halt erst im 1.Lehrjahr und sie haben gemeint ich soll mal versuchen ob ichs hinbekomme.


Und? Sry, aber wenn du es lernen willst dann musst du da durch und wenn du's nicht lernen willst dann brauchst du den Code auch nicht. Bei Hausaufgaben ist es teilweise ja sogar so, dass die Leute eigentlich gar nix mit Programmieren zu tun haben möchten, aber dann wäre es unfair gegenüber den Mitschülern fertigen Code zu posten.
Also, schapp dir n Buch und stelle konkrete Fragen.


----------



## Destiny1985 (1. Feb 2005)

EdvanSchleck hat gesagt.:
			
		

> Das sind auch keine Hausaufgaben sondern ich soll das für den Betrieb in dem ich arbeite programmieren.
> Ich bin halt erst im 1.Lehrjahr und sie haben gemeint ich soll mal versuchen ob ichs hinbekomme.



Bin in derselben Situation...1. Lehrjahr, lerne Java...und kein Mensch kann das hier 

Meine Empfehlung: Erstmal 'nen Buch zum lernen kaufen (Supergeil für Anfänger: www.grundkurs-java.de ), dann hier im Forum registrieren, mit dem Buch lernen und bei Problemen hier ins Forum kommen. So komme ich super voran. Beschäftige mich jetzt intensiv so einen Monat mit Java und hab heute zB das gecodet:

http://www.java-forum.org/de/viewtopic.php?t=13649

Hab wie gesagt keinen hier der das kann, alles selbst gelernt...klappt ganz gut !

joa...

mfg


----------

