prüfen ob datei geändert/neu erstellt wurde

hallo,
und zwar schreibe ich gerade eine methode die prüfen soll ob eine datei geändert wurde. dies stellt ja an sich kein problem dar, kann man ja einfach mit lastmodified() machen. so…das eigentliche problem ist das ich es nicht erkenne, wenn eine datei neu angelegt wurde. klar…mit file.exist(), aber ich kann die zwei sachen zusammen nicht zufrieden stellend zusammenfassen
mein code:
private void changed(File f){
if (f.exists()){
System.out.println(„erkannt das datei existiert“);
lastMod = f.lastModified();

if (lastMod != f.lastModified()){
System.out.println(„file changed“);
fileChange.fileChanged(f);
}
}
}

ich weiß ich konnte mich gerade nicht so klar ausdrücken, aber wenn nicht einfach fragen dann kann ichs vielleicht besser erklären :wink:

Hi,

[…]
private void changed(File f){
if (f.exists()){
System.out.println(„erkannt das datei existiert“);
lastMod = f.lastModified();

Bei lastMod fehlt der Typ

if (lastMod != f.lastModified()){

Das wird immer false, weil du eine Zeile drüber schreibst „lastMod = f.lastModified();“ und eine Zeile darunter prüfst du, ob sie ungleich sind. Das passt nicht.

System.out.println(„file changed“);
fileChange.fileChanged(f);

Was für ein Objekt ist fileChange?

}
}
}

[…]

Gruß,
Thomas.

der typ von lastmod is nen long un der is weiter oben deklariert
un mir is schon klar das es immer false wird, dafür such ich ja grad nach ner lösung :wink:
also ich hab schon nen paar sachen geändert, im moment sieht meine abfrage ob es existiert bzw neu erstellt wurde so aus:

private Boolean fileExist(File f) {
if (!f.exists()) {

return false;
} else {

fileChange.fileChanged(f);
lastMod = f.lastModified();

return true;

so…und des fileChange.fileChanged(f) ist nicht weiter wichtig, des is einfach die methode die dann aufgerufen werden soll.
wenn jetzt aber das file existiert, muss ich ja abfragen können ob es geändert wurde…vorschläge?

so…problem hat sich erledigt :wink:
Booelan exist = false;

private void fileChange(){
if (!exist){
exist = fileExist();
}else if(lastMod != f.lastModified()){
System.out.println(„FileÄnderung erkannt“);
fileChange.fileChanged(f);
}
}

private Boolean fileExist() {
if (!f.exists()) {

return false;
} else {

fileChange.fileChanged(f);
lastMod = f.lastModified();
System.out.println("File existiert und lastMod: " + String.valueOf(lastMod));
}
return true;
}