Ich habe eine Liste von Plänen, jeder Plan hat ein PDF in ("/ web/managed /") Ich löschte die Dateien nicht, wenn ich den Plan lösche, also jetzt Ich versuche, eine Funktion hinzuzufügen, um alle Dateien zu löschen, die nicht die IDs in meiner Planliste haben.Vergleichen Sie die Liste der Dateien mit dem Objekt Liste, um die Dateien zu löschen
Dateiname hat immer die ID. Beispiel: 6365_Test-LVLD.pdf
Liste des Objekts:
@Transaction
public List<StorePlan> getPlans() {
List<StorePlan> list = getCurrentSession().createCriteria(StorePlan.class).list();
return list;
}
dann werde ich alle Dateien aus meinem Ordner erhalten:
protected File[] getPDFs() {
return new File("/web/managed/").listFiles();
}
hier meine Spülfunktion ist:
protected void getPlanIds() {
int count = 0;
for(StorePlan plan : storePlanDao.getPlans()) {
for (File file : getPDFs()) {
String planFileId = file.getName().substring(0, 4);
if(plan.getId() != Integer.valueOf(planFileId)) {
file.delete();
count++;
}
}
}
}
mit meinem Code: Es wird alles aus meinem Ordner löschen. wenn ich die Dateien behalten möchte, die noch IDs in der anderen Liste haben.
Ja! das funktioniert ... vielen Dank! – Samarland
Gern geschehen! – isaace