Datei vergleich

Ich weiß nicht mit welcher Version du arbeitest, deswegen habe ich einfach mal eine ArrayList genutzt:

Java:
        String b = "10.22.33.145";
        
        File f = new File("C:\\ppcclient\\");
        File[] fileArray = f.listFiles();
        ArrayList<File> foundFiles = new ArrayList<File>();        
        
        for (int i = 0; i < fileArray.length; i++){
            if (fileArray[i].getName().contains(b) && !fileArray[i].getName().endsWith("lck")){
            	foundFiles.add(fileArray[i]);
            }
        }
        
        for (int i = 0; i < foundFiles.size(); i++){
            System.out.println(foundFiles.get(i));
        }

Und direkt mit der Ermittlung der neusten Datei:

Java:
String b = "10.22.33.145";

File newestFile = null;
long lastval = 0;
File f = new File("C:\\ppcclient\\");
File[] fileArray = f.listFiles();
ArrayList<File> foundFiles = new ArrayList<File>();        

for (int i = 0; i < fileArray.length; i++){
    if (fileArray[i].getName().contains(b) && !fileArray[i].getName().endsWith("lck")){
    	foundFiles.add(fileArray[i]);
    }
}

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

System.out.println("Das neuste File ist: " + newestFile.getName());

Falls du die anderen Dateien garnicht brauchst die auch die IP enthalten kannst du das ganze auch direkt so lösen:

Java:
String b = "10.22.33.145";

File newestFile = null;
long lastval = 0;
File f = new File("C:\\ppcclient\\");
File[] fileArray = f.listFiles();

for (int i = 0; i < fileArray.length; i++) {
	if (fileArray[i].getName().contains(b) && !fileArray[i].getName().endsWith("lck") && fileArray[i].lastModified() > lastval) {
		newestFile = fileArray[i];
		lastval = fileArray[i].lastModified();
	}
}

System.out.println("Das neuste File ist: " + newestFile.getName());
 
Zuletzt bearbeitet:
Habe meinen Beitrag nochmal editiert!

Also da ich nicht weiß was genau du brauchst und ob die anderen Dateien mit dem selben Namen weiterverarbeiten möchtest habe ich dir noch 2 Lösungsvorschläge dabei gepackt. Hoffe ich konnte dir nen bischen helfen ;)

Du könntest das ganze noch als Funktion gestaltet um das nun für alle IPs zu machen.
Dabei würde ich einfach b und die FileList (wegen Rechenaufwand - nich dauernd neu bestimmen) übergeben.
 
Zurück