Datei vergleich

The_Fratellis

Grünschnabel
Tach zusammen,

ich hätte eine Frage bezüglich vergleich mehreren Dateien die fast den identischen Namen habe, sprich


ppc.10.22.33.145_20080214.00.log
ppc.10.22.33.145_20080219.00.log
ppc.ppc.10.22.33.145_19990604.00_20080222.00.log
ppc.10.22.33.224_20080221.00.log

diese auf eine IP die dazwischen lieg aussortieren..

so nun habe ich alle Dateien die die IP: 10.22.33.145 enthalten. Und jetzt kommt mein Problem.. alle Dateien die ich habe muss ich vergleichen.. welche den neuesten Erstellungsdatum haben und diese Datei öffenen und in ein Textfeld speichern.

Wie kann ich diese vergleichen und nur die neueste auswählen?

danke schon mal im vorraus :)

soo long
The_Fratellis
 
hab zwar nicht ganz verstanden, was du machen möchtest, aber es gibt die Methode lastModified() der Klasse File.

gruß shutdown
 
Hier mal eine Funktion die dir die neuste Datei in einem Verzeichnis zurückliefert:

Java:
	public static File getNewestFile(String Folder) {
		
		File fileList = new File(Folder);
		File newestFile = null;
		long lastval = 0;
		
		if (fileList.listFiles() != null) {
			for (File file : fileList.listFiles()) {
				if (file.lastModified() > lastval) {
					newestFile = file;
					lastval = file.lastModified();
				}
			}
		}
		
		return newestFile;
	}

hoffe das hast du gesucht ;)
lies lieber nochmal rüber - mal fix auf die schnell gezimmert
 
ppc.10.22.33.145_20080214.00.log erstellt am 20.02.03
ppc.10.22.33.145_20080219.00.log erstellt am 01.02.04

so und nun muss ich von beiden die neueste Datei auswählen

diese Dateien liegen in einem File [] mit zick anderen Datein.. die sich nur durch die IP unterscheiden.

einige haben jedoch die selbe.. darum muss ich von diesen wo die selbe IP haben.. diese öffnen die als letztes erstellt wurde
 
Wie genau liegen dir die ausgewählten Dateien dann vor? in einem File-Array?
Dann kannst du ganz einfach meine Funktion umbasteln...

Java:
File newestFile = null;
long lastval = 0;

for (File file : deinFileArray) {
	if (file.lastModified() > lastval) {
		newestFile = file;
		lastval = file.lastModified();
	}
}

du könntest die If-Abfrage dann noch ergänzen um zu prüfen ob es auch eine datei mit der aktuellen IP ist oder so - ich weiß halt nicht wie dir die Daten vorliegen...
 
Jo in einen File-Array.

ich habs bis jetzt so ausprobiert.. zuerst einmal habe ich das File Array überprüft
welche Dateien di IP xy enthalten..

diese Dateien möchte ich nun wo ich gefilter habe in ein neues File Array schreiben und dann die zuletzt erstellte datei rausholen.
 
Na wenn du die schon in ein anderes FileArray kopiert hast ist es ja nun nichtmehr die Kunst mit dem von mir geposteten Programmschnipsel die zuletzt modifizierte Datei zu finden...

Hast du das schon ausprobiert?
 
Poste doch einfach mal ein paar Code-Schnipsel damit wir alle wissen was du schon hast und was du vllt falsch machst oder wie du es umsetzen könntest...

Ich kann dir jetz hier wieder nen kleines Stück Code hinhauen wie man das da rüber kopieren könnte - aber das hilft dir dann wahrscheinlich nicht weil es nicht genau passt o.ä.

Am besten du zeigst mal nen bischen, dann wird das viel einfacher ;)
 
Code:
            String b = "10.22.33.145";
            
            int zaehler = 0;
            File f = new File("C:\\ppcclient\\");
            File[] fileArray = f.listFiles();
            File[] fileArray2 = null;           
            
            for (int i = 0; i < fileArray.length; i++){

                if (fileArray[i].getName().contains(b) && 
                        !fileArray[i].getName().endsWith("lck")){
                    
                    zaehler++;
                    
                    System.arraycopy(fileArray, i, fileArray2, 0, fileArray.length);
                }
            }
            
            for (int i = 0; i < fileArray2.length; i++){
                System.out.println(fileArray2[i]);
            }

so das ist meine Testklasse wo ich so bisschen rumprobier...
 
Zurück